나는 WPF Window
있고 어딘가에 ListView
내가 바인딩하는 곳 List<string>
이 있습니다.
이제 내 어딘가에 ListView
a가 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=.
).