2016-10-21 5 views
0

私はC#と.NET Framework 4.6.1でWPFを開発しています。WPFバインディングStringFormatは出力を変更しません

私はこの番号1010を持っています。この1.010(私はスペイン語です)のように見せたいと思います。

それを行うには、私が変更したXAML:

<Label x:Name="labelCounterCamera" Margin="5,2" 
Content="{Binding CounterCamera, StringFormat=N{0}}" /> 

しかし、それはフォーマットせずに数を示しています。1010

CounterCameraは次のとおりです。

public uint CounterCamera 
{ 
    get { return counterCamera; } 

    set 
    { 
     if (!value.Equals(counterCamera)) 
     { 
      counterCamera = value; 
      RaisePropertyChangedEvent("CounterCamera"); 
     } 
    } 
} 

そのStringFormatがない理由作業?私は間違って何をしていますか?

+1

:http://stackoverflow.com/questions/4206612/ wpf-stringformat-on-label-content – ASh

+0

'StringFormat'は' TargetType'が 'string'型の場合にのみ動作します。ここで' Content'プロパティは 'object'型です。 –

+0

文字列をエスケープする必要があります。 'StringFormat = {} {0:N}'。 – XAMlMAX

答えて

1

あなたはContentStringformatを使用する必要がラベルのコンテンツのフォーマットは別のアプローチが必要

<Label x:Name="labelCounterCamera" Margin="5,2" 
    Content="{Binding CounterCamera}" 
    ContentStringFormat="{}{0:N}" /> 
0

プレースホルダトークン内でフォーマット文字列を移動してみます。ラベルを使用しているとき

Content="{Binding CounterCamera, StringFormat={0:N}}" 

{0:N}代わりのN{0}

+0

いいえ、コンパイルされません。 – VansFannel

+0

StringFormat = {} {0:N} – apc

+0

@apcを使用してエスケープする必要があります。コンパイルされますが、フォーマットはありません。 – VansFannel

関連する問題