我可以使用elementStyle将DatagridTextColumn IsReadOnly绑定到ViewModel内的Property(此处为IsReadOnlyProperty)吗? 像这样的东西:
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="IsEnabled" Value="{Binding IsReadOnlyProperty}"/>
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="IsEnabled" Value="{Binding IsReadOnlyProperty}" />
</Style>
</DataGridTextColumn.EditingElementStyle>
答案 0 :(得分:1)
试试这个:
<DataGridTextColumn IsReadOnly="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.IsReadOnlyProperty}" />
创建DataGrid时,可以通过分配ItemsSource来设置其DataContext。这会将DataGrid中的所有控件限制为仅使用其父DataContext中的对象,因此如果要从此DataContext外部绑定到属性,则必须明确声明要更改范围。