【发布时间】:2017-10-11 13:56:17
【问题描述】:
我有几个模型和一个 TreeView 来显示它们。 HierarchicalDataTemplate 使用 ItemsSource 显示模型。 领口轮廓...
public class ModelA : ObservableBase
{
private string _name = "A";
private Observablecollection<ModelB>_bModels = new Observablecollection<ModelB>();
String Name {
get {return _name;}
set { _name = value; OnPropertyChanged("Name"}}
Observablecollection<ModelB>BModels {
get {retun __bModels; }
set {_bModels = value; OnPropertyChanged("BModels"}}
}
ModelB is similar.
现在 TreeView 可以正确显示数据,并且我已将 ContextMenus 添加到每个级别。最初在 HierarchicalData 中的 TextBlock.ContextMenu 上,但现在作为 TreeView.Resource 中的资源。
命令现在在每个模型中调用 CommandProperties,如果这是应该完成的方式,但它确实有一个命令存在问题,需要从另一个模型或 ViewModel 调用 CommandProperty。 我已将它设置为 ViewModel 并且它可以工作,但我现在到处都有命令。
因此问题是命令应该去哪里?在它们所属的模型和/或视图模型中?
命令是“添加 A”、“删除 A”、“添加 B”、“删除 B”
Root- Add A
A- Add B/Remove A (this)
B- Remove B
B- Remove B
A- Add B/Remove A (this)
B- Remove B
如果需要,我会显示更多代码,但会占用大量空间,希望您能从中理解概念和问题。
【问题讨论】: