일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Process
- Binding
- WPF
- mysql
- .net
- windows
- Github
- C#
- windows10
- csharp
- chashtag
- nullable
- 코딩테스트
- logging
- git
- IValueConverter
- algorithm
- log
- tls
- convert
- Microsoft
- Visual Studio
- programmers
- Coding
- commit
- File
- dotNET
- string
- ListView
- coding-test
Archives
- Today
- Total
CHashtag
[C# WPF] 다른 Control Property Binding (다른 컨트롤 속성 바인딩) 본문
반응형
안녕하세요.
오늘은 WPF의 핵심 기능인 Binding을 이용하여 다른 Control의 Property(Button이 Griddml Width속성을)를 Binding하는 방법에 대해 알아보도록 하겠습니다.
자기자신의 다른 속성값 얻기
<TextBlock Width="250" Text="{Binding Path=Width, RelativeSource={RelativeSource Mode=Self}}"/>
<!-- Text: 250 -->
자기자신의 조상(부모) Control의 값 얻기
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Orientation, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type StackPanel}}}"/>
<!-- Text: Horizontal -->
</StackPanel>
이때 같은 type의 부모가 둘 이상이라면 어떻게 될까요?
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Orientation, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type StackPanel}}}" FontSize="20"/>
<!-- Text: Horizontal -->
</StackPanel>
</StackPanel>
이런 때에는 본인과 가장 인접한 조상을 선택하도록 되어있습니다.
그렇다면 제일 인접한 조상이 아니거나 아예 조상이 아닐 경우에는 어떻게 해야 할까요?
x:Name으로 Control 찾기
아래 코드와 같이 x:Name 을 이용하면 해당 이름을 가진 Control에 바로 접근할 수 있습니다.
<StackPanel x:Name="Panel1" Orientation="Vertical">
<StackPanel x:Name="Panel2" Orientation="Horizontal">
<TextBlock Text="{Binding Path=Orientation, ElementName=Panel}"/>
<!-- Text: Vertical -->
</StackPanel>
</StackPanel>
<TextBlock Text="{Binding Path=Orientation, ElementName=Panel2}"/>
<!-- Text: Horizontal -->
감사합니다.
반응형
'C# > WPF' 카테고리의 다른 글
[C#/WPF] Listview SelectedItems command Binding (MVVM패턴) (0) | 2023.02.20 |
---|---|
[C#/WPF] Converter사용하여 bool 반대값 binding하기 (0) | 2023.02.20 |
[C#] [WPF] TextBox 숫자만 입력받는 법 (0) | 2021.11.29 |
[C#] [WPF] TextBox의 실시간 Binding(바인딩) (0) | 2021.09.16 |
[C#] [WPF] ComboBox Converter 사용방법 (0) | 2021.07.24 |