【发布时间】:2012-05-17 21:26:45
【问题描述】:
我有一个关于 Mvvmlight 绑定 Listbox SelectedIndex 的问题。 完整的源代码可以在here下载。 这是我的先决条件:
[测试模型]
string Title;
string Description;
[TestViewModel]
ObservableCollection<TestModel> TestList;
[xaml 绑定]
<ListBox ItemSource="{Binding TestList}"
SelectedIndex="{Binding SelectedIndex Mode=TwoWay}">
.....
<i:EventTrigger EventName="SelectionChanged">
.....
</i:EventTrigger>.....
这是我的 OnSelectionChanged 代码:
private void OnSelectionChanged(TestModel test)
{
int index = SelectedIndex;
Debug.WriteLine("[SelectionChanged] +++, index={0}", index);
// If selected index is -1 (no selection) do nothing
if (-1 == SelectedIndex)
return;
Debug.WriteLine("[SelectionChanged] selected item={0}", test.Title);
// Reset selected index to -1 (no selection)
SelectedIndex = -1;
Debug.WriteLine("[SelectionChanged] ---, index={0}", index);
}
我有一个 sample 来拥有 MainPage.xaml 和 TestPage.xaml。
- MainPage:这个页面有一个按钮,点击按钮会导航到TestPage
- TestPage:此页面有一个列表框并绑定到 ViewModel
当我运行这个示例时,点击按钮到 TestPage,并尝试点击 Listbox 的任何项目,我可以看到该项目没有 焦点颜色(因为我重置SelectedIndex 为 -1)。
问题来了,当我回到MainPage,然后再次点击按钮到TestPage,你会看到点击Listbox的任何一项都会导致聚焦颜色 在每一项上,都很奇怪。
希望任何人都可以帮助我看看我的样品是否有任何问题。 谢谢。
【问题讨论】:
-
我无法重现您描述的行为。您的示例应用程序的行为符合我的预期(在具有最新 SDK 更新等的模拟器中运行)
-
嗨,马特,感谢您的评论,我稍后会尝试使用“最新的 SDK”。
-
对了,马特,你说的SDK是“WP7 SDK”还是“Mvvmlight SDK”?
-
我在您的 zip 文件中使用的是 7.1.1 和 MvvmLight 版本
-
我的SDK是7.1,模拟器还是一样的问题,我会安装7.1.1稍后试试,谢谢。
标签: windows-phone-7 mvvm-light