반응형
문자열 형식을 사용하여 WPF XAML 바인딩에 문자열 추가
정수 값(이 경우 섭씨 온도)에 대한 단방향 바인딩이 있는 TextBlock이 포함된 WPF4 애플리케이션이 있습니다.XAML은 다음과 같습니다.
<TextBlock x:Name="textBlockTemperature">
<Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock>
실제 온도 값을 표시하는 데는 문제가 없지만 숫자(30°C가 아니라 30°C)만 포함하도록 이 값을 포맷하고 싶습니다.StringFormat에 대해 읽고 다음과 같은 일반적인 예를 몇 가지 보았습니다.
// format the bound value as a currency
<TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" />
그리고.
// preface the bound value with a string and format it as a currency
<TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/>
안타깝게도, 제가 본 예들 중 어떤 것도 제가 하려고 하는 것처럼 경계 값에 문자열을 추가하지 않았습니다.뭔가 간단한 것이겠지만 찾을 운이 없네요.누가 나에게 그것을 어떻게 하는지 설명해 줄 수 있습니까?
첫 번째 예는 효과적으로 필요한 것입니다.
<TextBlock Text="{Binding CelsiusTemp, StringFormat={}{0}°C}" />
다음은 문자열 중간에 바인딩이 있거나 여러 바인딩이 있는 경우에 읽기 쉽게 사용할 수 있는 대안입니다.
<TextBlock>
<Run Text="Temperature is "/>
<Run Text="{Binding CelsiusTemp}"/>
<Run Text="°C"/>
</TextBlock>
<!-- displays: 0°C (32°F)-->
<TextBlock>
<Run Text="{Binding CelsiusTemp}"/>
<Run Text="°C"/>
<Run Text=" ("/>
<Run Text="{Binding Fahrenheit}"/>
<Run Text="°F)"/>
</TextBlock>
바인딩에서 문자열 형식을 사용하면 "텍스트" 속성에만 사용할 수 있습니다.레이블에 사용합니다.콘텐츠가 작동하지 않음
xaml에서
<TextBlock Text="{Binding CelsiusTemp}" />
인ViewModel
이러한 방식으로 값을 설정하면 다음과 같이 작동합니다.
public string CelsiusTemp
{
get { return string.Format("{0}°C", _CelsiusTemp); }
set
{
value = value.Replace("°C", "");
_CelsiusTemp = value;
}
}
언급URL : https://stackoverflow.com/questions/19278515/use-stringformat-to-add-a-string-to-a-wpf-xaml-binding
반응형
'programing' 카테고리의 다른 글
Objective-C에서 객체가 어떤 클래스에 있는지 테스트하려면 어떻게 해야 합니까? (0) | 2023.04.26 |
---|---|
변수에 표준 오차를 저장하는 방법 (0) | 2023.04.26 |
컨트롤러 기반 대 컨트롤러 for ASP에서 파생된 이유NET Core 웹 API? (0) | 2023.04.26 |
자르기 명령을 사용하여 공백을 구분 기호로 사용 (0) | 2023.04.26 |
그리드 칼럼의 폭/높이를 설정할 때 '자동'과 '*'의 차이점은 무엇입니까? (0) | 2023.04.26 |