반응형
단일 WPF 텍스트블록에 여러 값을 바인드하려면 어떻게 해야 합니까?
현재 사용하고 있는 것은TextBlock
이름붙인 속성의 값을 바인드합니다.Name
:
<TextBlock Text="{Binding Name}" />
다음 이름을 가진 다른 속성을 바인딩합니다.ID
똑같이TextBlock
.
두 개 이상의 값을 동일한 값으로 바인딩할 수 있습니까?TextBlock
? 간단한 연결로 할 수 있나요?Name + ID
그렇지 않다면 어떻게 접근해야 할까요?
를 속성과 조합하여 사용할 수 있습니다.사용법은 다음과 같습니다.
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} + {1}">
<Binding Path="Name" />
<Binding Path="ID" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
부여Name
의 값.Foo
그리고.ID
의 값.1
TextBlock의 출력은 다음과 같습니다.Foo + 1
.
주의: 이것은 에서만 지원됩니다.NET 3.5 SP1 및 3.0 SP2 이후
좀 늦은 건 알지만 다른 방법을 더 추가해 봐야겠어요.
"실행"을 사용하여 텍스트 속성을 설정할 수 있으므로 각각에 대해 실행을 사용하여 여러 바인딩을 설정할 수 있습니다.이 기능은 MultiBinding(Windows Phone용 개발 시 찾지 못한 것)에 액세스할 수 없는 경우에 유용합니다.
<TextBlock>
<Run Text="Name = "/>
<Run Text="{Binding Name}"/>
<Run Text=", Id ="/>
<Run Text="{Binding Id}"/>
</TextBlock>
텍스트 블록(따라서 단방향 바인딩)으로 값을 연결하려는 경우 두 개의 텍스트 블록을 바인딩하여 수평 스택 패널에 넣습니다.
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding ID}"/>
</StackPanel>
그러면 텍스트(모든 텍스트 블록)가 더 이상 코딩할 필요 없이 표시됩니다.조금 여백을 둬서 제대로 보이게 할 수도 있어요.
Value Converter 사용
[ValueConversion(typeof(string), typeof(String))]
public class MyConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return string.Format("{0}:{1}", (string) value, (string) parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
마크업에는
<src:MyConverter x:Key="MyConverter"/>
. . .
<TextBlock Text="{Binding Name, Converter={StaticResource MyConverter Parameter=ID}}" />
언급URL : https://stackoverflow.com/questions/2552853/how-to-bind-multiple-values-to-a-single-wpf-textblock
반응형
'programing' 카테고리의 다른 글
Git 분리 헤드는 어떻게 고치나요? (0) | 2023.04.14 |
---|---|
PS 명령어 전체 출력 표시 (0) | 2023.04.14 |
WPF에 동등한 MessageBox가 있습니까? (0) | 2023.04.14 |
기존의 글꼴 크기 및 문자의 WPF 텍스트 블록 너비를 계산하는 방법은 무엇입니까? (0) | 2023.04.14 |
아이폰에서 둥근 모서리 UILABEL을 작성하려면 어떻게 해야 하나요? (0) | 2023.04.14 |