0

我有一个源自 的控件ComboBox,我想使用ComboBox ControlTemplate,并在 xaml 中对其设置一些值,即ItemContainerStyle. 下面的代码不起作用,我打算将基本ComboBox控件模板应用于此的最后一个设置器没有做任何事情。

   <Style
      TargetType="{x:Type local:EditingFilteringComboBox}"
      BasedOn="{StaticResource {x:Type ComboBox}}">
      <Setter
         Property="IsEditable"
         Value="False" />
      <Setter
         Property="DisplayMemberPath"
         Value="DisplayValue" />
      <Setter
         Property="ItemContainerStyle"
         Value="{StaticResource editingFilteringComboBoxListBoxItem}" />
      <Setter
         Property="Template"
         Value="{StaticResource {x:Type ComboBox}}" />
   </Style>

我想从中派生,ComboBox但我不想包含它的整个控件模板。我什至不想触摸控制模板。我确实想更改ItemContainerStyle,我可以从代码中做到这一点,但如果我不必这样做会更好。

我在这里想要这个的另一个原因是因为想要访问ComboBox的控件模板的内部成员,即TextBoxPopup。通常我会在OnApplyTemplate.

我觉得我走错了路,请赐教老师。

4

1 回答 1

0

虚惊,

我没有在我的 generic.xaml 中包含指向该文件的链接

哦,我不必设置模板值

   <Style
      TargetType="{x:Type local:EditingFilteringComboBox}"
      BasedOn="{StaticResource {x:Type ComboBox}}">
      <Setter
         Property="IsEditable"
         Value="False" />
      <Setter
         Property="DisplayMemberPath"
         Value="DisplayValue" />
      <Setter
         Property="ItemContainerStyle"
         Value="{StaticResource editingFilteringComboBoxListBoxItem}" />
   </Style>

该样式只会设置与基本样式不同的属性。因为我不想更改控制模板,所以我根本不设置它。OnApplyTemplate 被调用,我可以访问 ComboBox 控件模板的内部。

于 2009-12-07T03:02:53.023 回答