2011-09-01 86 views
0

我對繼承自組合框的自定義控件有一種風格,我無法修改它。在這種風格中,有一個DataGrid控件需要一個ItemsSource,DataGrid也有一個x:Name,需要在代碼中引用,可能是由於該事件。WPF在樣式幫助中綁定?

所以基本上

<Style x:Key="ComboBoxStyle" TargetType="ComboBox"> 
     <Setter Property="Template"> 
      <Setter.Value> 

       ... A whole bunch of other stuff. 

       <xcdg:DataGridControl 
       x:Name="CustomItemOneGrid" 
       ItemsSource="{Binding Source={StaticResource CustomItemOne_DataSource}}" 
       SelectionChanged="CustomItemOneGrid_SelectionChanged"> 

我在這裏的問題是,CustomItemOne_DataSource,也有3次,我會用這個控制和井3點的數據源。另外,選擇更改事件我也需要訂閱。有沒有辦法讓這種風格能夠在所有三種控件中使用,但仍然有不同的Event和ItemsSource?

回答

0

爲可能更改的項目定義附加屬性,該項目未由ComboBox類定義(例如,GridItemsSource)。然後綁定到模板中的那些附加屬性。就像我在討論here一樣。

+0

這應該工作:)但是,我仍然認爲我要將所有東西都提取到它自己的用戶控件中,並且只從其他自定義控件繼承。我會嘗試兩個。謝謝! – Mike

0

通常我讓DataContext從實現樣式/數據模板的控件流向下,然後綁定到該控件的屬性。我不會爲你的綁定使用StatisResources。

+0

通常我也會。不幸的是,這不是我可以改變的代碼,因爲它被燒到了應用程序的HUNDRED +點中。 – Mike