XAML 요소에서 StringFormat을 사용하는 방법은 무엇입니까?
주문에 바인딩하는 요소의 XAML 스택에 깊이 빠져 있습니다.
주문 날짜는 "12/31/2008 12:00:00 AM"과 같이 표시됩니다.
예를 들어 "31.12.2008"로 표시하고 싶습니다.
어떻게 할 수 있습니까? 내가 본 다른 유래 질문이 있는 StringFormat을 언급하지만 내가 일을 얻을 수없는 방법으로 multibinding 사용합니다.
내가 원하는 구문의 종류는 다음과 같습니다 (이것은 의사 코드입니다). 필요한 곳에 StringFormat을 지정하기 만하면됩니다. 어떻게 든 가능합니까?
<StackPanel>
<ListView ItemsSource="{Binding Orders}">
<ListView.View>
<GridView>
<GridViewColumn
Header="Order ID"
DisplayMemberBinding="{Binding Path=OrderID}"
StringFormat="{}{1:dd.MM.yyyy}"/>
<GridViewColumn
Header="Order Date"
DisplayMemberBinding="{Binding Path=OrderDate}"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
나는 그것을 테스트하지 않았지만 이것이 효과가 있다고 생각합니다.
<GridViewColumn
Header="Order Date"
DisplayMemberBinding=
"{Binding Path=OrderDate, StringFormat='{}{0:dd.MM.yyyy}'}"/>
일반적으로 연결된 *StringFormat
종속성 속성을 찾을 수 있습니다 . 예를 들어 모든 ContentControl 구현 (예 : Label 및 Tooltip)에는 ContentStringFormat 종속성 속성이 있습니다 .
<Label
Content="{Binding Path=DateAsked}"
ContentStringFormat="{}{0:yyyy/MM/dd HH:mm:ss}" />
그동안 귀하의 경우, GridViewColumn이 이 HeaderStringFormat 종속성 속성 과 함께 이동을 Header
의에 대한 아날로그가 없다 DisplayMemberBinding
당신이 .NET 3.5 SP1이 필요합니다 그래서 (그것을 얻을 비주얼 스튜디오 2008 SP1 ) 또는 더 나은 새로운 사용 BindingBase.StringFormat을 재산 :
<GridViewColumn
Header="Order ID"
DisplayMemberBinding="{Binding Path=OrderID, StringFormat='{}{0:dd.MM.yyyy}'}"
/>
블로그 게시물 Trying out Binding.StringFormat 에는 더 많은 예제가 있습니다 .
XAML
<UserControl.Resources>
<myNamespace:DateTimeConverter x:Key="DateTimeConverter" />
</UserControl.Resources>
<GridViewColumn
DisplayMemberBinding=="{Binding Path=OrderDate, Converter={StaticResource DateTimeConverter}}"
/>
씨#
public class DateTimeConverter : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
CultureInfo culture)
{
if (value != null)
{
return ((DateTime)value).ToString("dd.MM.yyyy");
}
else
{
return String.Empty;
}
}
public object ConvertBack(object value,
Type targetType,
object parameter,
CultureInfo culture)
{
return DateTime.Parse(value.ToString());
}
}
날짜 형식을 현지화하려면 .resx 파일에 포함 할 수 있습니다. https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/ 가이드에 따라 현지화를 위해 앱을 설정해야합니다 .
resx 항목 :
<data name="DateFormat" xml:space="preserve">
<value>{0:dddd d MMMM H:mm}</value>
</data>
콘텐츠 페이지에 resx 파일의 위치를 포함합니다.
xmlns:il8n="clr-namespace:MyProject.Localization;assembly=MyProject"
And then you can use it in your binding like so:
<Label
Text = "{Binding Time, StringFormat={il8n:Translate DateFormat}}"
ReferenceURL : https://stackoverflow.com/questions/685743/how-to-use-stringformat-in-xaml-elements
'programing' 카테고리의 다른 글
C # 클래스에서 데이터베이스 테이블을 생성하려면 어떻게해야합니까? (0) | 2021.01.18 |
---|---|
ASP.NET MVC 응용 프로그램 내에서 "실제"HttpContext를 어떻게 얻을 수 있습니까? (0) | 2021.01.18 |
iPhone 용 오픈 소스 CoverFlow 라이브러리 (0) | 2021.01.18 |
django-목록을 다시 쿼리 셋으로 변환 (0) | 2021.01.18 |
PHP에서 소켓 전송 "ssl"이 활성화되지 않음 (0) | 2021.01.18 |