Передать аргумент событию из TreeItem - PullRequest
0 голосов
/ 07 мая 2019

Есть ли простой способ передать значение Url в событие TextBlock_IsMouseDirectlyOverChanged, не отображая его в пользовательском интерфейсе?

<TreeView Grid.Row="1" ItemsSource="{Binding Nodes}" >
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Nodes}">
            <TextBlock IsMouseDirectlyOverChanged="TextBlock_IsMouseDirectlyOverChanged">
                <TextBlock.Text>
                    <MultiBinding StringFormat="{}{0}">
                        <Binding Path="Name" />
                        <Binding Path="Url" />
                    </MultiBinding>
                </TextBlock.Text>
                <TextBlock.ToolTip>
                    <ToolTip Visibility="Collapsed">
                        <TextBlock Text="{Binding Url}"></TextBlock>
                    </ToolTip>
                </TextBlock.ToolTip>
            </TextBlock>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

DataModel:

public class Node
{
    public string Name { get; set; }

    public string Url { get; set; }

    public ObservableCollection<Node> Nodes { get; set; }
}

1 Ответ

2 голосов
/ 07 мая 2019

Вы можете сделать:

 (Node)(((TextBlock)sender).DataContext).Url

Или как предложено здесь Добавить параметр в событие нажатия кнопки , вы можете использовать свойство Tag в качестве параметра.

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