2010-06-07 240 views
0

把這個場景,我與像控制網格工作:綁定依賴屬性到另一個依賴屬性

<RadGrid DataContext={Binding someDataContextObject, Mode=OneWay}> 
    <RadGrid.columns> 
     <RadGrid.Column Header="Column Header" 
          DataMember="{Binding dataContextObjectProperty, Mode=OneWay}"> 
      [...] 
      <DataTemplate> 
       <MyCustomControl Data="{Binding ???}" /> 
      </DataTemplate> 
     <\RadGrid.Column> 
    </RadGrid.columns> 
</RadGrid> 

我想MyCustomControl的數據依賴屬性綁定到列的數據成員依賴屬性以避免多個綁定到相同的數據。我該怎麼做?

回答

0

似乎沒有簡單的方法來完成這項任務。問題在於無法將DataTemplate中的某些內容綁定到數據模板之外的某些內容。你可以找到某種解決方法here

但我不認爲這是值得的那種努力。有多個綁定到相同數據的問題是什麼?

正如他們所說如果某件事情如此困難,可能是您以錯誤的方式行事。 你真的需要將自定義控件綁定到整個數據上下文嗎? 基本上,當你給網格的數據源時,它會照顧從你的數據上下文中選擇一行,並將它設置爲你的模板的DataContext。但是,如果你有這樣一個很好的理由,你應該檢查第一段的鏈接。

希望這會有所幫助!

0

這裏有幾個想法給你一個開始。我沒有測試過這些,所以如果他們不工作,不要感到驚訝。

  1. 給你的MyCustomControl一個名字,然後在你的綁定中使用ElementName屬性來引用它。
  2. 使用RelativeSource綁定並將祖先類型設置爲MyCustomControl類的類型。
  3. 綁定到RadGrid的屬性(如標記),然後嘗試綁定數據模板以從RadGrid的Tag屬性中拉出。 (警告代碼 - 異味!)

希望你找到適合你的解決方案,請不要忘記回來發佈你的答案,以幫助我們其他人的程序員。