[wpf] WPF 자체에 바인딩

나는 WPF Window있고 어딘가에 ListView내가 바인딩하는 곳 List<string>이 있습니다.

이제 내 어딘가에 ListViewa가 TextBox있고 Content속성이로 설정됩니다 {Binding}.

그러나 이것은 속기입니다. 자신에게 바인딩 할 전체 바인딩을 어떻게 작성합니까?

{Binding Path=Self}작동하지 않고 작동하지 않습니다 {Binding Self}(후자는 전자의 지름길 임).



답변

짧은 대답 : “자체에 바인딩”( RelativeSource.Self 의 의미에서 )에 대한 지름길 {Binding}아닙니다 . 오히려 는 현재 소스에 바인딩되는와 동일합니다 .{Binding} {Binding Path=.}


자세히 설명하자면 : 바인딩에는 소스경로가 있습니다. 예를 들어 다음을 사용하여 “자체에 대한 바인딩”을 수행 할 수 있습니다.

<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" />

그러나 이것은 소스 를 컨트롤 자체로 설정하므로 현재 데이터 컨텍스트의 x속성 x이 아닌 UI 컨트롤의 속성 에 액세스하려고합니다 . 내가 당신의 질문을 어떻게 이해했는지에 따르면 이것은 당신이 원하는 것이 아닙니다. 특히, 그것은하는 일이 아닙니다 {Binding}: {Binding}소스를있는 그대로 (보통 DataContext부모 요소의 것) 유지하고 소스 자체에 바인딩합니다 ( Path=.).


답변