【问题标题】:How can I get the UpdateSourceTrigger settings from code for a DataGridColumn binding?如何从 DataGridColumn 绑定的代码中获取 UpdateSourceTrigger 设置?
【发布时间】:2012-12-31 02:04:27
【问题描述】:

我有一个带有 TextColumn 的 DataGrid 控件

    <DataGrid ItemsSource="{Binding Path=Dvm.Data}"
              Name="GrdName"
              AutoGenerateColumns="False"
              Margin="5"
              SelectionMode="Single">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Column 1"
                                Binding="{Binding Path=Col1, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
                                Width="*"/>
        </DataGrid.Columns>
    </DataGrid>

我有一个自定义控件,需要我测试 UpdateSourceTrigger 设置是什么,但我无法从代码中访问它。我想做这样的事情:

BindingOperations.GetBindingExpression(GrdName.Columns[0], DataGridTextColumn.BindingProperty);

但是,BindingProperty 实际上不是依赖属性,所以我不能这样做。有谁知道我将如何获取该列的 Binding 属性的绑定表达式,以便获取 UpdateSourceTrigger 设置?

谢谢, 马特

【问题讨论】:

    标签: wpf data-binding code-behind


    【解决方案1】:

    Binding 属性不是DependancyProperty,因此您必须使用普通的公共属性进行访问。 因此,您必须进行一些转换,因为DataGridTextColumn 中的Binding 属性是BindingBase 类型,您必须转换为Binding 才能访问UpdateSourceTrigger。 由于DataGridTextColumn 是从DataGridBoundColumn 派生的,因此您可以从中进行转换以使其更通用

    这样的事情应该可以工作:

       var columnUpdateSourceTrigger = ((GrdName.Columns[0] as DataGridBoundColumn).Binding as Binding).UpdateSourceTrigger;
    

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2011-06-29
      • 2011-12-20
      • 2011-11-23
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      相关资源
      最近更新 更多