Как узнать, кто звонит из конвертера WPF? - PullRequest
0 голосов
/ 12 октября 2010

Я пытаюсь получить элемент, который вызывает конвертер, в его функции Convert.

Причина в том, что у меня есть стиль для TreeViewItems и я хочу привязать BackgroundColor к содержимому (еслиЕсть подпункты или нет).Поэтому мне нужен Конвертер, который должен знать, что содержит соответствующий Предмет, и, по-моему, поэтому он нуждается в том, чтобы он теперь называл его.теперь, как это сделать, используя «NodeBackgroundConverter».

Thx

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Почему вы не используете StyleSelector Class

1 - Создайте 2 стиля

1.1 - Один для simpel treeviewitem 1.2 - Один для treeviewitem с подпунктами

2-thanсоздать класс, унаследованный от StyleSelector

3 - переопределить метод SelectStyle

 public class SeparatorTabStyleSelector : StyleSelector
{
    #region " StyleSelector Implementation "

    public override Style SelectStyle(
        object item,
        DependencyObject container)
    {
        object data = item as 'Your Bindable Object';
        if ('Your Condition Based upon item object')
        {
            return (Style)((FrameworkElement)container).FindResource("Style1");
        }
        else if ('If Condition is not true Based upon item object')
        {
            return (Style)((FrameworkElement)container).FindResource("Style2");
        }

        return base.SelectStyle(item, container);
    }

    #endregion " StyleSelector Implementation "

}
0 голосов
/ 12 октября 2010

Попробуйте использовать DataTrigger, связанный со свойством HasItems.

<DataTrigger Property="{Binding Path=HasItems}" Value="True">
  <Setter Property="DataTemplate" Value="{StaticResource subitemtemplate}" />
</DataTrigger>

В стиле установите DataTemplate на другой шаблон, шаблон будет заменен, когда TreeView имеет дочерние элементы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...