2016-09-29 2 views
0

TreeView의 경우 SelectedItem 속성은 바인딩에 사용할 수없는 것 같습니다. 나는 이것이 어떻게 MSDN 문서와 일치 할 수 있는지 이해하려고 노력하고있다. 등록 정보가 BindableAttribute 세트가 표시되어있는 경우TreeView.SelectedItem의 바인딩 가능성에 대한 MSDN 설명서

: 그것은 Treeview.SelectedItem 부동산에 관한 말한다 https://msdn.microsoft.com/en-us/library/system.windows.controls.treeview.selecteditem.aspx

: 다음

[BindableAttribute(true)] 
public object SelectedItem { get; } 

https://msdn.microsoft.com/en-us/library/system.componentmodel.bindableattribute.aspx는 "주의"에서 말한다 true, 으로 변경하려면 속성 변경 알림을 발생시켜야합니다 ().속성. 즉, Bindable 속성이 Yes 인 경우 양방향 데이터 바인딩이 지원됩니다. BindableNo 인 경우 속성에 바인딩 할 수는 있지만 속성을 올리거나 올리지 않을 수 있으므로이 속성은 바인딩 할 속성 의 기본 집합으로 표시하면 안됩니다.

나는 "당신의 재산이 trueBindableAttribute 세트가있는 경우, 당신이 그것을 결합 수에 상관없이 어떤 값이 Bindable로 설정됩니다."로 읽어 Bindable[...] 부분에 SelectedItem으로 나열되어 있지 않습니다. 이는 BindableNo으로 설정되었다고 가정합니다.

문서에 따르면 SelectedItem에 바인딩하면 올바르게 작동합니까? 아니면 내가 오해하고 있습니까? 그렇다면 무엇입니까? 내가

그것이 말하는
<TreeView SelectedItem="{Binding foo, Mode=OneWayToSource}" /> 

가 작성하는 경우

는 "SelectedItem 속성 접근 세터가 없습니다." (원본 : "다이 SelectedItem -Eigenschaft"verfügt의 동네 짱 kein 세터 - OBJEKT, 안녕히로써 zugegriffen werden을 kann.)

하지만 지금은 다시 혼란 스러워요 - 내가 SelectedItem의 변화가 반영 것을 의미 만 바인딩 OneWayToSource를 사용하도록했다 foo에 있지만 그 반대의 경우는 아닙니다. 그래서 왜 세터가 신경 써야합니까? 참조 OneWayToSource binding from readonly property in XAML, Pushing read-only GUI properties back into ViewModel

답변

0

SelectedItem은 현재 선택된 항목에 대한 참조 일뿐입니다. SelectedItemPath 및 DisplayMemberPath의 속성을 정의한 다음 ItemsSource를 통해 TreeView를 컬렉션에 바인딩해야합니다. 이처럼 :

<TreeView ItemsSource="{Binding MyCollection}" DisplayMemberPath="Name" SelectedValuePath="Id" /> 

DisplayMemberPath - 부동산 GUI 컨트롤에 표시됩니다 SelectedValuePath - 선택 항목 (일반적으로 ID)

편집의 값이 될 것이다 특성 (즉, 고객의 이름입니다.) : 그냥 SelectedItem의 "get"속성을 가리 키기를 원했습니다.