【发布时间】:2014-04-22 15:24:56
【问题描述】:
我想知道是否可以从 WPF 中的选中更改事件中获取 Item 源项?
XAML
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Active, Mode=TwoWay}" Checked="CheckBox_Checked" HorizontalAlignment="Center"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
示例 C#(在正确答案的行上。我希望)
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
**// Its not e.source, most events it's e.item...but the checked event doesn't use this..**
Customer c = e.Source as Customer;
if(c != null)
.....
}
谢谢
【问题讨论】:
-
你要那个干什么? UI is NOT Data。如果您的复选框已经绑定到底层对象,为什么不只监听底层对象的属性变化呢?你想做什么?
-
,因为基础对象来自观测值,我想聆听单个属性事件,即检查活动复选框时,该集合将不允许允许,但我也需要行数据,但我也需要行数据还有
-
UI 不是放置您需要的任何业务逻辑的正确位置。在您的数据项中侦听
PropertyChanged事件,或者将您的逻辑放在委托中并在Active属性的设置器中调用它。或者使用类似Selectable<T>的方法。 -
我同意逻辑需要进入 ViewModel,但他选择的
不起作用,因为它只在第一次单击行时选择行,而不是在复选框上。委托的好主意,但我将在模型中设置它..而不是视图模型..再次不正确地使用 MVVM?