일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C#
- windows
- windows10
- logging
- string
- mysql
- git
- log
- nullable
- algorithm
- 코딩테스트
- commit
- Github
- programmers
- .net
- Coding
- Microsoft
- Binding
- tls
- File
- IValueConverter
- convert
- dotNET
- csharp
- ListView
- coding-test
- Visual Studio
- WPF
- chashtag
Archives
- Today
- Total
CHashtag
[C#] [WPF] MultiBinding StringFormat (여러개 동시 바인딩) 본문
반응형
안녕하세요.
오늘은 하나의 Property에 여러 값을 동시에 Binding 하는 MultiBinding에 대해 알아보도록 하겠습니다.
(Converter에 대한 설명은 다른 게시글로 정리하겠습니다.)
코드에 대한 설명은 주석으로 달아놓았으니 참고 바랍니다.
<!-- MainWindow.xaml -->
<Window x:Class="WPF_MultiBinding_StringFormat.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF_MultiBinding_StringFormat"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<!-- 하나만 바인딩 할 때에는 별도의 Tag로 분리해서 사용할 필요가 없습니다. -->
<TextBlock Text="{Binding Path=Height, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"/>
<!-- 하지만 MultiBinding의 경우 Attribute안에 넣을 수 없어서 (Binding의 배열이 들어가서) 별도의 Tag로 분리해서 작성해야 합니다. -->
<TextBlock>
<TextBlock.Text>
<!-- StringFormat의 앞에 {} 을 넣어주는 이유는 XAML 마크업 확장을 나타내기 위해서입니다. -->
<MultiBinding StringFormat="{}{0}, {1}">
<Binding Path="Height" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}"/>
<Binding Path="Width" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock>
<TextBlock.Text>
<!-- 바로 Formatting 문자열이 나오지 않는다면 {}를 넣어주지 않아도 무관합니다. -->
<MultiBinding StringFormat="Height: {0}, Width: {1}">
<Binding Path="Height" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}"/>
<Binding Path="Width" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
</Window>
감사합니다.
반응형
'C# > WPF' 카테고리의 다른 글
[C#] [WPF] DispatcherTimer 사용방법 (0) | 2021.02.24 |
---|---|
[C# WPF] Binding 값 자동 변환 Converter (IValueConverter, IMultiValueConverter) (1) | 2021.02.23 |
[C#][WPF] MVVM패턴 CheckBox 양방향 Binding (0) | 2021.02.19 |
[C# WPF] MVVM 패턴 ListView Filter (Binding) (2) | 2021.02.09 |
[C# WPF] MVVM 패턴 csv 파일 파싱 프로그램 (ListView, Binding, Prism) (0) | 2020.12.22 |