我有TreeView与对象。当我选择这些树的项目时,比其他控件 - ListView显示为所选对象的项目属性。我想在TreeView选择更改为其他对象时保存属性的值。 那么,WPF中是否有一种很好的方法来获取ListView控件中“更改前”项的值?我现在的想法是覆盖PreviewMouseDown以检查用户是否单击树节点。按照上帝的方式,我的意思比我的好。也许在ListView模板中的东西? 表示不需要使用PreviewMouseDown改变我的想法也是一个很好的答案。
答案 0 :(得分:0)
您能否提供相关的代码段?我试着回答你的问题,但我不确定我是否理解正确。 如果将TreeView的SelectedItem绑定到属性(使用MVVM模式),则可以在实际设置项目之前保存值。
在setter中这样做并不是那么好,因为它变得非常大。我会有一个像这样的二传手:
private Foo bar;
public Foo Bar
{
get { return bar; }
set
{
OnPropertyChanging("Bar");
bar=value;
OnPropertyChanged("Bar");
}
}
然后你可以听听你自己的PropertyChanging事件并在那里做你的事情:
private void this_PropertyChanging(object param, PropertyChangingEventArgs e)
{
switch(e.PropertyName)
{
case "Bar":
//Do you stuff
break,
}
}