C# 绑定到DataGridTemplateColumn内的复选框
我试图使用带有复选框的DataGridTemplateColumn作为DataTemplate中的唯一项。我还不能让绑定与我的视图模型一起工作。DataGridCheckBoxColumn的绑定工作正常,但DataGridCheckBoxColumn的问题是用户必须单击两次才能选中/取消选中复选框。我还发现其他帖子建议在DataGridTemplateColumn中使用此复选框,它的工作原理与预期一样,只需单击一次即可操作复选框。现在我只需要拿到装订 我更愿意在xaml中实现绑定,而不是在代码隐藏中实现绑定 以下是相关的xaml:C# 绑定到DataGridTemplateColumn内的复选框,c#,wpf,xaml,caliburn.micro,C#,Wpf,Xaml,Caliburn.micro,我试图使用带有复选框的DataGridTemplateColumn作为DataTemplate中的唯一项。我还不能让绑定与我的视图模型一起工作。DataGridCheckBoxColumn的绑定工作正常,但DataGridCheckBoxColumn的问题是用户必须单击两次才能选中/取消选中复选框。我还发现其他帖子建议在DataGridTemplateColumn中使用此复选框,它的工作原理与预期一样,只需单击一次即可操作复选框。现在我只需要拿到装订 我更愿意在xaml中实现绑定,而不是在代码隐
<DataGrid Name="BatchRecordParameters">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Extract">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=ShouldExtract, Mode=TwoWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- <DataGridCheckBoxColumn Binding="{Binding Path=ShouldExtract}" Header="Extract" />-->
<DataGridTextColumn Binding="{Binding Path=ParameterName}" Header="Parameter Name" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=ParameterValue}" Header="Parameter Value" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
这是一个WPF应用程序,我使用Caliburn.Micro作为我的MVVM框架。我已经找到了十几篇关于类似问题的帖子,但没有一个解决方案对我有效。非常感谢您对装订工作的任何帮助 1您需要继承caliburn的遗产
public class ParameterData : PropertyChangedBase
然后转换属性以实现通知更改
public bool ShouldExtract
{
get
{
return this.shouldExtract;
}
set
{
if (value.Equals(this.shouldExtract))
{
return;
}
this.shouldExtract = value;
this.NotifyOfPropertyChange(() => this.ShouldExtract);
}
}
对于XAML,下面的代码做得很好
<DataGridCheckBoxColumn Header="Extract" Binding="{Binding ShouldExtract}"></DataGridCheckBoxColumn>
我刚刚运行了Xaml,当我在声明中添加UpdateSourceTrigger=PropertyChanged时,它符合我的WOM原则。双向!DataGridTemplateColumn工作得非常好。在我的例子中,我将它绑定到一个名为FileCollection的集合,该集合被定义为private ObservableCollection\u FileCollection;public observeCollection FileCollection{get{return}FileCollection;}set{{FileCollection=value;OnPropertyChangedFileCollection;}}}@GarryVass就是这样做的!现在很好用。谢谢服务的所有部分。口碑原则每次都有效@Garry瓦斯-实际上,默认情况下,是DataGridTemplateColumn使所有绑定的UpdateSourceTrigger显式。更多信息请点击此处:
<DataGridCheckBoxColumn Header="Extract" Binding="{Binding ShouldExtract}"></DataGridCheckBoxColumn>