- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力使用 DataGrid 捕获事件。我想要实现的是,当用户在数据网格单元格的复选框上单击一次时,会触发一个事件,我可以获得当前单元格值。但是,CellChangedEvent 仅在选择更改时触发,而 CellEditingEvent 要么在单元格失去焦点时触发,要么从不触发。如果我尝试通过执行以下操作使复选框可通过单击进行修改,它永远不会触发:
<DataGrid Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="0" AutoGenerateColumns="True" ItemsSource="{Binding MasterDataTable, Mode=TwoWay}" CanUserAddRows="False" Margin="10 5" CurrentCellChanged="DataGrid_CurrentCellChanged">
<DataGrid.Resources>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
</DataGrid>
当用户单击单元格内的复选框时,如何立即调用方法?提前致谢。
最佳答案
1) 在您的 DataGrid 中注册 TargetUpdated 事件。
2) 指定一个 Column ,最好设置 AutoGenerateColumns=False 。
3) 在您的 Binding 标记中的 NotifyOnTargetUpdated 属性(您的目标是您的复选框)。
4) 在您的绑定(bind)中 UpdateSourceTrigger=PropertyChanged 和 Mode=TwoWay(不是 DataGrid 的默认行为)。
XAML:
<DataGrid TargetUpdated="DataGrid_TargetUpdated"
AutoGenerateColumns="False"
ItemsSource="{Binding SomeValues, Mode=OneWay}" CanUserAddRows="False" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Path=., NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
在 CS 中:(您可能不想处理该事件。)
private void DataGrid_TargetUpdated(object sender, DataTransferEventArgs e)
{
// Do what ever...
}
关于wpf - DataGrid 通过单击 UpdateSourceTrigger = SourceUpdated 捕获单元格值更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174094/
我想知道 Window 上的任何输入元素何时更新了其绑定(bind)源。 输入元素可以是 TextBox、RadioButton、Slider、ComboBox 等,并且可以嵌套在 UserContr
我有 DiscoveredHosts,它是一个 ObservableCollection .未调用 sourceupdated 事件。有人知道为什么吗? public void GetDomainH
我想在所有定义的子绑定(bind)上收听 Binding.SourceUpdated。 http://msdn.microsoft.com/en-us/library/system.windows.d
我的 View 中有两个组合框。它们都绑定(bind)到 ViewModel 中的两个不同的 ObservableCollections,当 ComboBox1 中的所选项目发生更改时,ComboBo
我有一个有效的绑定(bind)。 GUI 更新。 绑定(bind)源对象实现了 INotifyPropertyChanged 并且绑定(bind)属性是一个普通的 clr 属性。 Binding.T
我下面的事件 (OnSourceUpdated) 没有得到处理。 XAML: C#: .... MyStackPanel.DataContext
我正在努力使用 DataGrid 捕获事件。我想要实现的是,当用户在数据网格单元格的复选框上单击一次时,会触发一个事件,我可以获得当前单元格值。但是,CellChangedEvent 仅在选择更改时触
我的 WPF 项目中的 Window 上有一个图像控件 XAML: 在代码中我正在更改图像的来源 C#: myImage = new BitmapImage(); myImage.BeginInit
我是一名优秀的程序员,十分优秀!