c# - 如何处理 UWP、MVVM 的子列表中的 ItemClick 事件?
问题描述
我是 UWP 的新手。我有一个已经在这里问过的问题,
UWP:如何从视图模型中的另一个列表视图而不是代码隐藏中捕获列表视图部分的点击?
但是,没有一个解决方案真正起作用。我已经对它们进行了测试,“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 中找到“ChildItemClick”,而不是 ViewModel。
我想在 ViewModel 中捕获此事件。我该怎么做,请建议。
感谢您的阅读。
解决方案
如果这仍然是一个问题,并且您对答案感兴趣,请点击此处。我想你在这里有很多选择。
就像已经提到的那样,您可以使用行为 SDK,并且您必须命名 Child-ListView,因此您可以将 SelctionChanged-Event 绑定到命令
您可以将所选项目绑定到类的元素,该元素提供列表并在 setter 方法中做出反应,但请记住您需要调用 NotifyPropertyChanged
这是两个简单的选项。
推荐阅读
- python - 获取 FileNotFoundError:[Errno 2] 没有这样的文件或目录:(PYTHON)
- magento - Magento 2 WYSIWYG 编辑器按钮不起作用
- microsoft-graph-api - 使用 Microsoft Graph API 从术语库中弃用术语
- javascript - Javascript:向 Markdown 添加动态文本
- r - 编写在两个数据帧中发现差异的 R 函数
- python - 如何修复 django.core.exceptions.ImproperlyConfigured:设置 DATABASE_URL 环境变量?
- python-3.x - 如何在python中迭代特定值作为其范围的动态嵌套循环?
- html - CSS 中的下拉样式问题
- java - 在java中使用多态对json进行序列化和反序列化时出错
- python - 我如何使用 fastai (kaggle) 保存和加载模型