我需要禁用一行中的特定单元格,具体取决于同一行的其他单元格中的值。
WPF 或 WPF MVVM 方案,欢迎使用这两种解决方案。
我都试过了,都没有用!!!
我需要禁用一行中的特定单元格,具体取决于同一行的其他单元格中的值。
WPF 或 WPF MVVM 方案,欢迎使用这两种解决方案。
我都试过了,都没有用!!!
如果我对你的理解正确。
您可能需要查看 Datagrid.Columns 部分中的 DataGridTemplateColumn(请参见下面的代码),因为这允许您为列/单元格设置自己的模板,然后您可以设置启用的属性。以下只是一个简单的解决方案,以后我会拥有它,以便当您更改更新模型的启用复选框时,该复选框又将启用行中的项目。
<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 的类的简单可观察集合,它具有您在下面看到的一些属性。(这是基本的 MV-VM 技术)
谢谢@Grenter。我确实通过实现 Converter 类并将其实现为我的 xaml 文件中的静态资源来解决它。另外,我发现我们可以使用单元格更新或单元格更新事件并在后面的 xaml 代码中编写一些代码行来做同样的事情,我通常不喜欢这样做。
但是转换器肯定是前进的道路。
非常感谢!!!