嗯,我有下面的類定義:INotifyPropertyChanged的不通知UI
private ObservableCollection<Node> _Nodes;
public ObservableCollection<Node> Nodes
{
get
{
return _Nodes;
}
set
{
_Nodes = value;
OnPropertyChanged("Nodes");
}
}
Node
類:
[Serializable]
public class Node : INotifyPropertyChanged
{
private string _Name;
[XmlAttribute("Name")]
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
OnPropertyChanged("Name");
}
}
private bool _IsChecked;
[XmlIgnore()]
public bool IsChecked
{
get
{
return _IsChecked;
}
set
{
_IsChecked = value;
OnPropertyChanged("IsChecked");
}
}
,當在ViewModel
我修改一個元素:
try
{
foreach (var node in AllNodes)
{
if (node.Children.Contains(s))
{
for (int i = 0; i < node.Children.Count; i++)
{
if (node.Children[i] == s)
{
node.Children[i] = null;
}
}
}
}
}
catch (NullReferenceException)
{
}
用戶界面恰好無所作爲。但再次加載文件解決了它:) AllNodes是一個ObservationblCollection Node
有沒有辦法做到這一點?
由於您正在修改'.Children'節點,我們還需要一些關於此成員的信息。 – 2012-03-28 09:01:23