2009-12-07 4 views
0

У меня есть контроль, полученный из ComboBox, я хочу использовать ComboBoxControlTemplate, а просто установить несколько значений на нем в XAML, а именно в ItemContainerStyle. Код ниже не работает, последний сеттер, который намеревается применить шаблон управления ComboBox к этому, ничего не делает.Реферирование шаблона управления базовыми типов в 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}" /> 
     <Setter 
     Property="Template" 
     Value="{StaticResource {x:Type ComboBox}}" /> 
    </Style> 

Я хочу получить от ComboBox, но я не хочу, чтобы включить шаблон весь контроль за ней. Я даже не хочу прикасаться к шаблону управления. Я хочу изменить ItemContainerStyle, что я мог бы сделать из кода, но гораздо приятнее, если мне это не нужно.

Другая причина, почему я хочу это здесь, потому что хочу получить доступ к внутренним членам шаблона контрольного ComboBox «s, а именно TextBox и Popup. Обычно я обращаюсь к членам вроде этого в переопределении OnApplyTemplate.

Я чувствую, как им путешествия по неправильному пути, просветите меня сенсей.

+0

Вы можете быть моим правописанием сенсей –

ответ

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.