質問

私は深いポスタックの要素を結合する。

の日付を表示していなど"12/31/2008 12:00:00".

っていない場合については、で表示例"31.12.2008".

する方法を教えてください。見 その他のstackoverflowの質問 も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 実装などのラベルとツールチップ)の ContentStringFormat依存性:

<Label
    Content="{Binding Path=DateAsked}"
    ContentStringFormat="{}{0:yyyy/MM/dd HH:mm:ss}" />

このケースでは、 GridViewColumnHeaderStringFormat依存性 によって Header, あなたのアナログの DisplayMemberBinding も必要になります。※純3.5SP1(getで Visual Studio2008SP1 やよいの BindingBase.StringFormat物件:

<GridViewColumn 
    Header="Order ID"
    DisplayMemberBinding="{Binding Path=OrderID, StringFormat='{}{0:dd.MM.yyyy}'}"
/>

あとりどりのブログ ように結合する。StringFormat.

<UserControl.Resources>
    <myNamespace:DateTimeConverter x:Key="DateTimeConverter" />
</UserControl.Resources>

<GridViewColumn 
DisplayMemberBinding=="{Binding Path=OrderDate, Converter={StaticResource DateTimeConverter}}" 
/>

C#

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&#x3a;mm}</value>
</data>

にコンテンツページを、その場所をresxファイル

xmlns:il8n="clr-namespace:MyProject.Localization;assembly=MyProject"

されるまでご利用い結合のように:

<Label
    Text = "{Binding Time, StringFormat={il8n:Translate DateFormat}}"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top