ContextMenu를 연결하는 TreeView가 있습니다. 해당 컨텍스트 메뉴에는 IsChecked 속성이 내 ViewModel에 바인딩하려는 항목이 있습니다. 트리를 사용하기 때문에 각 트리 항목은 내 ViewModel의 하위 속성에 바인딩됩니다.WPF Treeview 컨텍스트 메뉴 IsChecked 바인딩 MVVM
BindingExpression 경로 오류 : '객체' ''HostMgmtViewModel '(해시 코드 = 12565727)'를 찾을 수 없습니다 'IsAutoStart'의 property VS2010 출력 창에서
나는이 데이터 바인딩 오류를보고하고있다. BindingExpression : Path = IsAutoStart; DataItem = 'HostMgmtViewModel'이것은 분명히 트리 모델의 관련 데이터가 아니라 내 ViewModel에 바인딩하려는 것을 보여줍니다. 올바른 개체에 어떻게 바인딩합니까? 내 contextmenu가 특정 treeitem이 아닌 전체 TreeView와 연관되어 있음을 기억하십시오.
{Binding Path=PlacementTarget.SelectedItem.IsDisabledStart, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}}
그리고이 바인딩은 ContextMenu 안에 들어갑니다. 이 오류가 발생하면 '바인딩'을 'ItemCollection'컬렉션에서 사용할 수 없습니다. 'Binding'은 DependencyObject의 DependencyProperty에서만 설정할 수 있습니다. – BrettRobi
BTW, 내 이전 대답은 위의 텍스트 블록 예제처럼 할 수 있지만 menuitem 헤더에 적용됩니다. 메뉴 항목에 오류가 없지만 작동하지 않습니다. 당신은 DependencyObject를 얻습니다 ... 당신이 데이터 소스에 바인딩하고 있지만 속성은 아닙니다. – xandy
감사합니다 xandy, 샘플이 저에게 정확한 답을주었습니다. 나는 메뉴 항목 IsChecked를 다음과 같이 바인딩했다 : {바인딩 경로 = PlacementTarget.SelectedItem.IsAutoStart, 모드 = OneWay, RelativeSource = {RelativeSource AncestorType = {x : 유형 ContextMenu}}} – BrettRobi