【问题标题】:How to bind to a property of the ViewModel from within a GridView如何从 GridView 中绑定到 ViewModel 的属性
【发布时间】:2009-08-27 04:29:12
【问题描述】:

我正在使用 MVVM 设计模式,并且我的 View 的 DataContext 设置为 ViewModel。

在我看来,我有一个 ListView/GridView 和一个 ItemsSource 绑定到一个 DataTable。其中一个GridViewColumns 有一个CellTemplate,它提供一个Button。我希望按钮的IsEnabled 属性绑定到我的ViewModel 的SelectButtonsEnabled 属性。

使用IsEnabled="{Binding Path=SelectButtonsEnabled}" 不起作用,因为我的DataTable 没有名为“SelectButtonsEnabled”的列。我尝试绑定的属性是整个 ViewModel 的全局属性,而不是特定于 DataTable 的一行。

我想我需要某种RelativeSource 标签,但到目前为止我的所有尝试都失败了。

谢谢。

【问题讨论】:

    标签: wpf data-binding xaml mvvm


    【解决方案1】:

    好吧,我不知道这是否是最简洁的方法,但这很有效:

    IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Path=DataContext.SelectButtonsEnabled}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      相关资源
      最近更新 更多