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は実際には依存関係プロパティではないため、それを行うことはできません。UpdateSourceTrigger設定を取得できるように、その列のBindingプロパティのバインディング式を取得する方法を知っている人はいますか?

ありがとう、マット

4

1 に答える 1

2

Bindingプロパティはそうではないので、DependancyProperty通常のパブリックプロパティを使用してアクセスする必要があります。Bindingしたがって、のプロパティはにアクセスするためにキャストする必要がDataGridTextColumnあるタイプであるため、少しキャストする必要があります。から派生しているので、そこからキャストしてもう少し一般的にすることができますBindingBaseBindingUpdateSourceTriggerDataGridTextColumnDataGridBoundColumn

このようなものが機能するはずです:

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