【发布时间】:2019-04-05 20:30:36
【问题描述】:
我正在尝试为 RadGridView 的列标题中存在的 checkbox 绑定如下所示的 command。
<telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding IsSelected, Mode=TwoWay}" Width="85" AutoSelectOnEdit="True" EditTriggers="CellClick">
<telerik:GridViewCheckBoxColumn.Header>
<CheckBox Command="{Binding ShowAllInDTCClickedCommand}" Content="Sh">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding ShowAllInDTCCheckedCommand}"/>
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding ShowAllInDTCUncheckedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</telerik:GridViewCheckBoxColumn.Header>
</telerik:GridViewCheckBoxColumn>
并尝试在 ViewModel 中实现它们,如下所示。
public DelegateCommand ShowAllInDTClickedCommand { get; set; }
public DelegateCommand ShowAllInDTCCheckedCommand { get; set; }
public DelegateCommand ShowAllInDTCUncheckedCommand { get; set; }
ShowAllInDTClickedCommand = new DelegateCommand(ShowAllInDTClicked);
ShowAllInDTCCheckedCommand = new DelegateCommand(ShowAllInDTCChecked);
ShowAllInDTCUncheckedCommand = new DelegateCommand(ShowAllInDTCUnchecked);
private void ShowAllInDTClicked()
{
//Do Something
}
private void ShowAllInDTCChecked()
{
//Do Something
}
private void ShowAllInDTCUnchecked()
{
//Do Something
}
但是这些命令没有执行,即代码根本无法访问。 我错过了什么?
【问题讨论】:
-
基本上,我正在尝试检查该列的属性以查找网格中存在的所有记录。类似“全选”、“取消全选”...
-
您是否将网格绑定到模型?
-
是的,我可以填充对象,其他一切正常。除了这些命令...
-
从您的 cmets 到 mm8 来看,您的交互触发器似乎存在问题。也许试试这个 stackoverflow.com/questions/5566050/… 似乎你想要的只是找出复选框的状态并相应地执行代码,所以只需传递该 CommandParameter 就可以为你提供该信息。
-
你在哪里进行分配 ShowAllInDTClickedCommand = new DelegateCommand(ShowAllInDTClicked);在构造函数中还是在其他地方?
标签: c# wpf mvvm telerik telerik-grid