这是我的情况。我有一个View和一个ViewModel。视图的DataContext设置为ViewModel。由于使用了第三方控件,我不得不在代码隐藏中加入一些代码。在代码隐藏中,我创建了一个名为StraightConnectorTool的对象。
在我的视图中,我需要绑定到此对象。如果在代码隐藏中设置了View的DataContext:
DataContext = this;
以下绑定正常。
<BarItemToolBehavior ActiveTool="{Binding ActiveTool, ElementName=diagram, Mode=TwoWay}"
Tool="{Binding StraightConnectorTool}"/>
其中,图表是View上的第三方控件的名称,ActiveTool是其中一个属性。
但是,如果将View的DataContext设置为ViewModel,则绑定不起作用。当我们将DataContext设置为ViewModel时,我试图弄清楚如何绑定到视图。有什么想法吗?
答案 0 :(得分:1)
这不是一个好习惯,但您可以将BarItemToolBehavior的DataContext绑定到视图。在后面的代码中使用名称或在XAML中使用RelativeSource FindAncestor来查找视图。更好的解决方案是将该对象移动到它所属的VM。