4

我正在使用C#和开发一个 Windows 商店应用程序XAML。我正在使用 aListView来显示数据的集合。

在里面ListView我有一个数据模板,它有网格和网格中的 TextBlock。我想在不选择父ListView项的情况下点击/单击 TextBlock 并执行操作,因为我已经有事件来处理所选ListView项目。我不希望两者重叠。

提前感谢您的任何回复。

4

1 回答 1

0

因此,您希望能够ListViewItem在点击其中一部分时选择 ,而不是TextBlock? 如果是这种情况,请在TextBlock'sTapped事件中添加e.Handled = true;. 这应该使它不会被进一步路由到 parent ListView

您可以做的另一件事(这可能是您想要对 ListViewItems 执行的任何操作的更通用解决方案)是使用 thingSelectionChanged事件,而是使用ItemClick. 然后,您可以推断OriginalSource事件的 是否确实是您的TextBlock. 然后,如果不是TextBlock,则更改父ListView级的SelectedItem.

检查原始来源的示例

public static void ItemClickEvent(object sender, ItemClickEventArgs e)
{
    if(e.OriginalSource is TextBlock)
        DoNothingOrMaybeTextBlockEvent();
    else
    {
        ListView.SelectedItem = e.ClickedItem;
    }
}

希望这可以帮助。

编辑:为 OriginalSource 检查添加了一些示例代码

于 2013-07-11T16:10:02.090 回答