[英]Binding IsReadOnly of a DataGridTextColumn to a DataGridTemplateColumn checkbox IsChecked
[英]Setting the DataGridTextColumn IsReadonly property from DataGridTextColumn.HeaderTemplate Checkbox
我有WPF DataGrid,在这里显示一些数据。 如果用户检查标题中的复选框,则需要为用户提供一个编辑数据的选项。 这是我完成的WPF部分。
<DataGrid.Columns>
<DataGridTextColumn Header="MaxLength" Binding="{Binding MaxLength}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<CheckBox x:Name="AAOverride" Content="Increase Max Length" />
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
我想根据用户选择启用/禁用MaxLength列。 我正在关注MVVM,所以我没有codebehind选项:(
只需绑定到RelativeSource绑定即可进入您的根视图模型。 我想是这样的(还需要一个IValueConverter来否定布尔值以“增加最大长度”->“只读”):
<DataGrid.Columns>
<DataGridTextColumn Header="MaxLength" Binding="{Binding MaxLength}"
IsReadOnly="{Binding
RelativeSource={RelativeSource AncestorType=DataGrid},
Path=DataContext.IsMaxLengthEnabled,
Converter={StaticResource NegateBool}}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<CheckBox x:Name="AAOverride" Content="Increase Max Length"
IsChecked="{Binding RelativeSource={RelativeSource AncestorType=DataGrid},
Path=DataContext.IsMaxLengthEnabled,
Mode=TwoWay}"
/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.