여기 내 상황이 있습니다. 나는 View와 ViewModel을 가지고있다. 뷰의 DataContext는 ViewModel로 설정됩니다. 제 3 자 컨트롤을 사용하기 때문에 일부 코드를 코드 숨김에 넣어야합니다. 코드 숨김에서는 StraightConnectorTool이라는 객체를 만듭니다.보기가 ViewModel에 바인딩 될 때 컨트롤 바인딩?
내보기에서이 개체에 바인딩해야합니다. 보기의 DataContext가 코드 숨김으로 설정된 경우 :
DataContext = this;
다음 바인딩이 제대로 작동합니다.
<BarItemToolBehavior ActiveTool="{Binding ActiveTool, ElementName=diagram, Mode=TwoWay}"
Tool="{Binding StraightConnectorTool}"/>
여기서 diagram은보기의 타사 컨트롤 이름이고 ActiveTool은 속성 중 하나입니다.
그러나 View의 DataContext가 ViewModel로 설정된 경우 바인딩이 작동하지 않습니다. DataContext가 ViewModel로 설정되어있을 때 뷰에 바인딩하는 방법을 파악하려고 노력 중입니다. 어떤 아이디어?
'this.DataContext = this; '는 WPF MVVM의 암입니다. [이 기사에서는 이유를 설명합니다.] (http://blog.scottlogic.com/2012/02/06/a-simple-pattern-for-creating-re-useable-usercontrols-in-wpf-silverlight.html) 그것은 다소 길지만 chemo도 마찬가지입니다. – Will