如何处理UWP,MVVM子列表中ItemClick的事件?

时间:2018-07-06 00:09:08

标签: c# mvvm uwp uwp-xaml uwp-navigation

我是UWP的新手。我有一个已经在这里问到的问题,

UWP: How to catch the click of a listview part from another listview in the viewmodel instead of code-behind?

但是,没有一种解决方案真正起作用。我已经测试过了,“ ElementName”找不到父ListView的名称。

在此处重新构建场景,

假设我有这个骨架。 [用伪代码编写]

ViewModel{

   Collection< TypeT > CollectionParent{}
   RelayCommand_For_ChildList ChildItemClick; 
}

//TypeT is a model in here. 

TypeT{
    Collection<string> CollectionChild{}
}


<ListView Name="ParentListView" ItemSource="CollectionParent">

<ListView.ItemTemplate>
   <DataTemplate>
        <ListView Name="ChildListView" Command="{Binding ChildItemClick}" ItemSource="AnotherCollectionWithinTheFirstCollection">
</ListView>
   </DataTemplate>
</ListView.ItemTemplate>

</ListView>

当我运行此代码时,“ Binding ChildItemClick”将尝试在TypeT而不是ViewModel中找到“ ChildItemClick”。

我想在ViewModel中捕获此事件。我该怎么做,请提出建议。

感谢您的阅读。

1 个答案:

答案 0 :(得分:0)

如果这仍然是一个问题,并且您对此处的答案感兴趣,请继续。 我认为您在这里有很多选择。

  • 就像已经提到的那样,您可以使用行为SDK,并且必须命名Child-ListView,以便可以将SelctionChanged-Event绑定到命令

  • 您可以将选定的项目绑定到类的元素上,该元素在setter方法中提供列表和反应,但请记住,您需要调用NotifyPropertyChanged

这是两个简单的选项。