1

我有一个具有 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 设置?

谢谢,马特

4

1 回答 1

2

Binding属性不是a DependancyProperty,因此您必须使用普通的公共属性访问。因此,您必须进行一些转换,因为您必须转换为access中的Binding属性DataGridTextColumn类型。并且因为是从你可以转换的,使它更通用一点BindingBaseBindingUpdateSourceTriggerDataGridTextColumnDataGridBoundColumn

像这样的东西应该工作:

   var columnUpdateSourceTrigger = ((GrdName.Columns[0] as DataGridBoundColumn).Binding as Binding).UpdateSourceTrigger;
于 2013-01-16T23:34:56.067 回答