【发布时间】:2014-09-24 14:19:10
【问题描述】:
假设您有一个对象类型为 Foo 的可观察集合,并且您有一个用户可以从中选择的自定义 ListView。
你绑定的数据对象:
// property with getter / setter / INotifyPropertyChanged
ObservableCollection<Foo> MyCollection;
在 XAML 中:
<ListView ItemsSource={Binding MyCollection} />
绑定到 XAML 中的 SelectedIndex 并在您的数据对象中创建以下内容是否更合适:
int SelectedIndex { get; set; } // also raising property changed notifications
Foo SelectedObject
{
get { return MyCollection[SelectedIndex]; }
}
或者创建这个并绑定到 XAML 中的 SelectedItem:
Foo SelectedObject { get; set; } // also raising property changed notifications
为什么?
【问题讨论】:
-
根据本站guidelines,这里不是为了了解任何最佳实践,或者讨论 任何东西,所以你的问题显然是off topic。因此,我投票决定关闭它。对于我的 2 美分,我总是建议使用
SelectedItem方法,但这真的取决于你。用一个,如果你不喜欢,就用另一个。 -
@Sheridan 我的理解是,大多数“X 的最佳方法是什么”问题过于宽泛,这就是它们被关闭的原因,但是像这样的具体问题是使用哪种方法而不是另一种方法以及为什么似乎它完全是该网站的主题。事实上,这也是我感兴趣的答案。如果你认为标题中的“Best practice”字样会导致更接近的投票,也许我们可以将它们编辑掉,并用更具体的东西替换它们,例如 “使用 SelectedItem 或 SelectedIndex 有区别吗,我什么时候应该选择一个而不是另一个?”
-
@Rachel 我完全同意,这可能不应该是“最佳实践”,而是“哪种方式更好”...
-
@Sheridan,您对问题或标题有疑问吗?我会在万维网的什么地方发布这样的问题?
-
这是一个很好的链接@Sheridan:meta.stackoverflow.com/questions/271863/…