将参数传递给TreeItem的事件

时间:2019-05-07 11:20:16

标签: c# wpf

有什么简单的方法可以在Url事件中传递TextBlock_IsMouseDirectlyOverChanged值而不显示在UI上?

<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 个答案:

答案 0 :(得分:2)

您可以这样做:

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

或者如此处建议的Add parameter to Button click event,您可以使用Tag属性作为参数。