2015-12-01 8 views
7

x:UWP Windows 10アプリケーションでバインドするときに日付をフォーマットする方法を知っている人はいますか?UWPとxを使用した文字列形式:バインド

私はSQLから読み込まれたViewModelのDateTimeプロパティにバインドされたTextBlockを持っています(x:Bind)。私は出力を "dd/MM/yyy HH:mm(ddd)"にフォーマットしたいと思います。これを行う簡単な方法はありますか?

デフォルトのフォーマットは「デフォルト:dd/MM/yyy HH:mm:ss」です。これはおそらく置き換えられますか?

ありがとうございました。

答えて

17

(あなたはおそらくいくつかのライブラリを使用する場合Cimbalino Toolkit例えば、すでにそれを含む、チェック)StringFormatConverterを使用します。

public class StringFormatConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     if (value == null) 
      return null; 

     if (parameter == null) 
      return value; 

     return string.Format((string)parameter, value); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     throw new NotImplementedException(); 
    } 
} 

ページリソース

<Page.Resources> 
    <converters:StringFormatConverter x:Key="StringFormatConverter" /> 
</Page.Resources> 

に追加するなど、それを使用この

<TextBlock Text="{x:Bind Text, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd/MM/yyy HH\\\\:mm (ddd)}'}" /> 
+0

パーフェクト。どうもありがとうございました。治療をしなさい。 –

1

{x:Bind ViewModel.DateTimeProperty.ToString("....")} 
+1

あなたがターゲットとしている限り、クリエイターアップデート –

+1

私のケースではコンパイラーがToString(IFormatProvider)オーバーロードを呼び出していると解釈するために動作しないので、(string、IFormatParameter)オーバーロードを呼び出すこれは:{x:Bind ViewModel.DateTimeProperty.ToString( '...'、{x:Null})} – joseangelmt

関連する問題