gpt4 book ai didi

c# - 如何从 GridViewColumn header 获取点击事件?

转载 作者:行者123 更新时间:2023-11-30 17:42:58 26 4
gpt4 key购买 nike

我可以从标题下的所有内容中获取事件,但无法通过单击标题获取事件。这是 XAML;请注意该事件是针对整个 ListView 的,因此它应该在单击任何内容时激活:

<ListView x:Name="myListView" MouseLeftButtonUp="myListView_MouseLeftButtonUp" Margin="10">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="File Path"
DisplayMemberBinding="{Binding Path=Path}" />
<GridViewColumn Header="File Size"
DisplayMemberBinding="{Binding Path=Size}" />
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>

而且事件本身非常简单。告诉我发生了什么事:

    private void myListView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
string output = sender.ToString();
MessageBox.Show(output);
}

点击标题下的任何地方都能完美响应:
"System.Windows.Controls.ListView Items.Count:0"

单击“文件路径”标题不会执行任何操作。单击“文件大小”标题没有任何作用。

MSDN 说:
https://msdn.microsoft.com/en-us/library/vstudio/ms745786(v=vs.100).aspx

<ListView x:Name='lv' Height="150" HorizontalAlignment="Center" VerticalAlignment="Center" 
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">

Visual Studio 表示不存在 GridViewColumnHeader 这样的东西,因此 MSDN 上的代码均无效。

最佳答案

这就是默认情况下 WPF UI 事件的工作方式。他们冒泡。如果有人在途中吃掉了消息(这是按钮类型控件所做的),则更高级别的控件将不会得到它。您可以使用事件的预览版,也可以使用更简洁的方式:

AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ListView_OnColumnClick));

关于c# - 如何从 GridViewColumn header 获取点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com