我使用的是MVVM设计模式, DataContext 我的视图设置为视图模型。
DataContext
在我看来,我有一个 ListView/GridView 具有 ItemsSource 绑定到 DataTable . 其中之一 GridViewColumns 有一个 CellTemplate 那表示 Button . 我想要 IsEnabled 要绑定到的按钮的属性 SelectButtonsEnabled 我的ViewModel的属性。
ListView/GridView
ItemsSource
DataTable
GridViewColumns
CellTemplate
Button
IsEnabled
SelectButtonsEnabled
使用 IsEnabled="{Binding Path=SelectButtonsEnabled}" 因为我的 可计算的 没有名为“SelectButtonsEnabled”的列。我尝试绑定到的属性对于整个ViewModel是全局的,而不是特定于 可计算的 .
IsEnabled="{Binding Path=SelectButtonsEnabled}"
可计算的
我想我需要某种 RelativeSource 标记,但到目前为止我的所有尝试都失败了。
RelativeSource
谢谢。
好吧,我不知道这是不是最简洁的方法,但这是可行的:
IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Path=DataContext.SelectButtonsEnabled}"