我要求连续禁用一个特定的单元格,具体取决于同一行的其他单元格中的值。
WPF或WPF MVVM场景,欢迎这两种解决方案。
我试过了两个都没有用!!!
答案 0 :(得分:2)
如果我理解正确的话。
您可能需要查看Datagrid.Columns部分中的DataGridTemplateColumn(请参阅下面的代码),因为这允许您为列/单元格设置自己的模板,然后您可以设置enabled属性。以下只是一个简单的解决方案,并且我将继续这样做,以便当您更改启用模板的启用复选框时,该复选框将启用行中的项目。
<DataGrid Name="dgrgrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" IsEnabled="{Binding Enabled}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Type" />
<DataGridTextColumn Header="Size" />
<DataGridTextColumn Header="Price" />
<DataGridCheckBoxColumn Header="Row Enabled" Binding="{Binding Enabled}" />
</DataGrid.Columns>
</DataGrid>
对于后面的代码,我有一个名为Cheese的类的简单可观察集合,它有一些属性,你可以在下面看到。 (这是基本的M-V-VM技术)
答案 1 :(得分:0)
谢谢@Grenter。 我通过实现Converter类并在我的xaml文件中将其实现为静态资源来解决它。 另外,我发现我们可以使用单元格更新或单元格更新事件并在后面的xaml代码中编写一些代码行来做同样的事情,我通常不喜欢这样做。
但转换器肯定是前进的方式。
非常感谢!!!