2013-01-16 91 views
1

我有,有一個TextColumn如何從DataGridColumn綁定的代碼中獲取UpdateSourceTrigger設置?

<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設置是什麼自定義控件DataGrid控件,但我無法正常訪問,從代碼。我願做這樣的事情:

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

但是,BindingProperty實際上不是一個依賴項屬性,所以我不能這樣做。有誰知道我會如何去獲取該列的綁定屬性的綁定表達式,以便我可以獲取UpdateSourceTrigger設置?

謝謝, 馬特

回答

2

Binding屬性不是DependancyProperty所以你將不得不使用正常的公共屬性來訪問。 所以你將不得不做一點鑄造Binding財產DataGridTextColumnBindingBase類型,你將不得不投入Binding訪問UpdateSourceTrigger。 既然DataGridTextColumnDataGridBoundColumn衍生您可以從投,使其更有點通用

像這樣的東西應該工作:

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