【发布时间】:2021-12-01 20:41:37
【问题描述】:
问题实际上如标题所述。如果CheckBox在外面,我可以进行如下的命令绑定,它工作正常。
如果我将CheckBox 包含在ListView 中,我的CheckBox 命令绑定将不起作用。另外,当我在模型中创建CheckBoxCommand 时,没有绑定错误,但我不知道如何在模型中使用CheckBoxCommand。
<CheckBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding CheckBoxCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
视图模型
public RelayCommand CheckBoxCommand { get; set; }
public AnalysisViewModel()
{
CheckBoxCommand = new RelayCommand(CheckBoxClick);
}
private void CheckBoxClick(object param)
{
Console.WriteLine("Click");
}
在以下情况下不起作用。在以下情况下如何使用应用程序运行它?
<ListView ItemsSource="{Binding checkMessageList}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding ID}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding CheckBoxCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListView>
我的模特
public static readonly ObservableCollection<CanBusDataMessageResponse> checkMessageList = new ObservableCollection<CanBusDataMessageResponse>();
public class CanBusDataMessageResponse
{
public int IDE { get; set; }
public int ID { get; set; }
public byte RTR { get; set; }
public byte DLC { get; set; }
public byte Byte0 { get; set; }
public byte Byte1 { get; set; }
public byte Byte2 { get; set; }
public byte Byte3 { get; set; }
public byte Byte4 { get; set; }
public byte Byte5 { get; set; }
public byte Byte6 { get; set; }
public byte Byte7 { get; set; }
public DateTime Time { get; set; }
}
【问题讨论】:
标签: c# wpf mvvm data-binding command