如何绑定单选按钮与DataGridTextColumn
本文关键字:单选按钮 DataGridTextColumn 绑定 何绑定 | 更新日期: 2023-09-27 18:14:20
我用的是WPF (c#)。
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Col1" IsReadOnly="{Binding}" >
</DataGridTextColumn>
<DataGridTextColumn Header="Col2" IsReadOnly="{Binding}" >
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<GroupBox>
<StackPanel>
<RadioButton IsChecked="{Binding}" Content="Col1 IsReadOnlyFalse, Col2 IsReadOnlyTrue"/>
<RadioButton IsChecked="{Binding}" Content="Col1 IsReadOnlyTrue, Col2 IsReadOnlyFalse"/>
</StackPanel>
</GroupBox>
请告诉我,如何绑定IsChecked(RadioButton)与IsReadOnly(DataGridTextColumn)?
DataGridTextColumns不位于与DataGrid
相同的可视化树中,因此与 ElementName
的简单绑定在这里不起作用。
如果您使用的是WPF 4.0或更高版本,您可以使用x:Reference来绑定单选按钮,如下所示:
<DataGrid ItemsSource="{Binding GroupsCollection}">
<DataGrid.Columns>
<DataGridTextColumn Header="Col1"
IsReadOnly="{Binding IsChecked,
Source={x:Reference DisableColumn1}}" >
</DataGridTextColumn>
<DataGridTextColumn Header="Col2"
IsReadOnly="{Binding IsChecked,
Source={x:Reference DisableColumn2}}" >
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<GroupBox>
<StackPanel>
<RadioButton x:Name="DisableColumn2"
Content="Col1 IsReadOnlyFalse, Col2 IsReadOnlyTrue"/>
<RadioButton x:Name="DisableColumn1"
Content="Col1 IsReadOnlyTrue, Col2 IsReadOnlyFalse"/>
</StackPanel>
</GroupBox>
在单选按钮上设置 x:Name
并使用 x:Reference
与之绑定。