2016-06-13 3 views
1

В моем ResourceDictionary.xaml У меня есть <Style> для одного из моих видов шаблонов. Внутри, я поставил всплывающую подсказку следующим образом:XAML Style tag - property of property

<Setter Property="ToolTip"> 
     <Setter.Value> 
      <templates:MyToolTipTemplate/> 
     </Setter.Value> 
    </Setter> 

Как я могу получить доступ свойства Tooltip «s (мне нужно установить StaysOpen)?

+0

Вы надеваете» t нужна ссылка на всплывающую подсказку, чтобы обрабатывать событие MouseOver, вы можете обрабатывать его непосредственно в MyToolTipTemplate'. Можете ли вы поделиться «шаблонами: код MyToolTipTemplate»/xaml? – igorushi

+0

Просто интересно, почему вы хотите обрабатывать MouseOver? Есть ли что-то, что вы хотите сделать в ToolTip, кроме поведения по умолчанию, которое появляется при просмотре вашего представления? – Jai

+0

@Gosha моя ошибка - я хочу установить 'StaysOpen'. Чтобы получить доступ к этому, мне нужна ссылка на tooltip –

ответ

0

Возможно, это может дать вам направление для того, что вам действительно нужно.
Предполагая, что templates:MyToolTipTemplate связано с видом (например, его контроля):

<Setter Property="ToolTip"> 
    <Setter.Value> 
     <ToolTip StaysOpen="{Binding SomeBoolProperty,ElementName=template}"> 
      <templates:MyToolTipTemplate x:Name="template"/> 
     </ToolTip> 
    </Setter.Value> 
</Setter> 

Если templates:MyToolTipTemplate является объект ViewModel, вы можете поместить соответствующее связывание в соответствующем DataTemplate:

<DataTemplate DataType="{x:Type templates:MyToolTipTemplate}"> 
    <ToolTip> 
     <SomeControl SomeProperty="{Binding StaysOpen, 
      RelativeSource={RelativeSource AncestorType=ToolTip}, Mode=OneWayToSource}"/> 
    </ToolTip> 
</DataTemplate> 
+0

Это похоже на хорошее направление, но он устанавливает 'SomeBoolProperty' в соответствии с' StaysOpen', тогда как мне нужно установить StaysOpen = True, ' –

+0

Вы можете использовать «привязку инвертирования» '{Binding StaysOpen, Mode = OneWayToSource ..." или напрямую привязать свойство подсказки, например ' igorushi

+0

Если первый вариант работает для вас, я не понимаю вашу проблему. Просто замените предложенное Gosha обязательное с * True * -Value – lokusking

Смежные вопросы