C# 在视图类的后端代码中动态创建Caliburn绑定

C# 在视图类的后端代码中动态创建Caliburn绑定,c#,wpf,mvvm,contentcontrol,caliburn,C#,Wpf,Mvvm,Contentcontrol,Caliburn,我正在尝试构建一个树状结构,其中所有节点都可以拖动,但我无法创建节点。我正在MVVM中构建系统,并且我已经正确设置了所有后端。我的节点设计存储在自己的模型、视图和视图模型中,每次单击“添加节点”时,我都希望能够创建该节点的实例,并将其添加到总体设计视图的画布中。然而,我能得到的只是文字。我假设这是因为它没有绑定视图,而是试图显示视图模型 我曾试图利用Caliburn库中的绑定方法,但似乎无法使它们中的任何一个正常工作 我的想法是在view.xaml.cs类中创建ContentControl实例,

我正在尝试构建一个树状结构,其中所有节点都可以拖动,但我无法创建节点。我正在MVVM中构建系统,并且我已经正确设置了所有后端。我的节点设计存储在自己的模型、视图和视图模型中,每次单击“添加节点”时,我都希望能够创建该节点的实例,并将其添加到总体设计视图的画布中。然而,我能得到的只是文字。我假设这是因为它没有绑定视图,而是试图显示视图模型

我曾试图利用Caliburn库中的绑定方法,但似乎无法使它们中的任何一个正常工作


我的想法是在view.xaml.cs类中创建ContentControl实例,然后将其添加到视图的画布中。但它正在将代码
cal:View.Model=“{Binding viewmodel}”
转换为后端代码,这似乎是我无法做到的


以前有人遇到过这种情况吗?

“我的想法是在view.xaml.cs类中创建ContentControl的实例,然后将其添加到视图的画布中”这不是MVVM。听起来您需要一个ItemsControl,它使用画布作为面板,并为不同类型的节点提供一组数据模板。添加节点是由父VM中的ICommand完成的,它将新的子VM添加到绑定到ItemsControl的ObservableCollection。如果您不熟悉Observable(OCs和INPC道具)以及WPF如何使用DataTemplates,请停止您正在做的事情并进行备份。我尝试过使用items控件方法,但items控件使其结构化。因为我希望节点能够在画布上拖动,所以我不确定items控件是否支持这一点。我有一个支持可移动项目的画布,这是我目前采用的方法,将其用作我的项目面板模板,但到目前为止它似乎还不起作用。我希望在没有物品控制的情况下可以轻松修复。我知道它不是严格意义上的MVVM,但它是我正在探索的一个选项。ItemsControl以画布作为面板。您可以轻松地将Canvas.X和Canvas.Y值绑定到UC中视图模型上的值。有很多人做过这件事,并就此提出了很多问题(见鬼,我自己也做过,不记得我在这里问过任何关于tho的问题)。继续,研究!创建一个简单的原型。一旦你了解了如何去做,这真的很容易做到。