2011-09-01 77 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