반응형
WPF 데이터 바인딩:"부모" 데이터 컨텍스트에 액세스하려면 어떻게 해야 합니까?
창문에 리스트(아래 참조)가 있습니다.창문은DataContext
두 가지 특성이 있습니다.Items
그리고.AllowItemCommand
.
의 바인딩을 입수하려면 어떻게 해야 합니까?Hyperlink
의Command
창문에 대해 속성을 해결해야 합니다.DataContext
?
<ListView ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridViewColumn Header="Action">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock>
<!-- this binding is not working -->
<Hyperlink Command="{Binding AllowItemCommand}"
CommandParameter="{Binding .}">
<TextBlock Text="Allow" />
</Hyperlink>
</TextBlock>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
다음과 같은 작업을 수행할 수 있습니다.
...Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.AllowItemCommand}" ...
이것도 동작합니다.
<Hyperlink Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl},
Path=DataContext.AllowItemCommand}" />
ListView
그 상속을 하다DataContext
부터Window
이 시점에서도 이용할 수 있습니다.
그리고 그 이후로ListView
유사한 제어장치(예:Gridview
,ListBox
, 등)은 의 서브클래스입니다.ItemsControl
,그Binding
그런 제어는 완벽하게 작동하기 때문입니다.
이것은 Silverlight 5에서도 동작합니다(아마도 이전 버전일 것입니다만, 아직 테스트해 본 적은 없습니다.상대 소스를 이렇게 사용했는데 잘 작동했어요.
RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=telerik:RadGridView}"
언급URL : https://stackoverflow.com/questions/1127933/wpf-databinding-how-do-i-access-the-parent-data-context
반응형
'programing' 카테고리의 다른 글
Vim에 설치된 모든 색 구성표 목록을 가져오려면 어떻게 해야 합니까? (0) | 2023.04.23 |
---|---|
프레임워크 모듈 내 비모듈 헤더 포함 (0) | 2023.04.23 |
SQL Server: MAX(DATE) 행만 선택 (0) | 2023.04.23 |
커밋을 브랜치에서 다른 브랜치로 복사하려면 어떻게 해야 합니까? (0) | 2023.04.23 |
Azure 서비스 프린서펄이 뭐죠? (0) | 2023.04.23 |