1

使用 MVVM Light 附带的 EventToCommand 行为,我将 ListBox 的 SelectedItem 绑定到 ViewModel 上的 RelayCommand

在我的 Windows Phone 7 应用程序中一切正常,除了在使用 ListBox 离开视图后返回 SelectedItem 与以前相同。不是我想要的。

我在离开时尝试重置选定的索引,但这会导致命令再次触发。

有没有其他人解决了这个问题以及如何解决?

TIA

帕特里克·朗

4

3 回答 3

1

我在每个处理程序开始时通过一个简单的检查来处理这个问题。假设您只支持单项选择,您可以检查是否有添加的项目。

if (e.AddedItems.Count == 1)
{
    // Your code here
}

e(的实例在哪里SelectionChangedEventArgs。)

如果选择已被删除,则AddedItems列表将为空,但RemovedItems将填充列表。

于 2011-06-10T07:40:59.280 回答
0

我不再使用 SelectionChanged 事件。现在我用 TapGestures 来完成这一切。这样做的缺点是 TapGesture 不适用于 EventToCommand 行为,因此我在 View 中捕获 Gesture 事件并触发绑定到 Sender 的 DataContext 的 Command。

恕我直言,这比使用 SelctionChanged 和使用 SelectedIndexes 更简洁。

于 2011-07-01T08:39:22.040 回答
0

由于您使用的是 mvvm light,您不能为特定视图模型调用 ViewModelLocator 中的 clear 方法吗?

于 2011-06-09T23:51:59.957 回答