0

以下に宣言されているように、テキスト属性を持つ多くのテキストボックスを持つフォームを作成しています:

Text="{Binding Path=SomeField, StringFormat='\{0:#,##0.##\}', Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true, Source={StaticResource statementsMainsViewSource}}"

バルクスペースとキーストロークを節約するために、スタイルを使用して各ウィンドウにデフォルトのテキストボックスを設定する方法があるかどうかを知りたいです (たとえば、以下の間違ったコードに多少似ています)。

<Style TargetType="{x:Type TextBox}">
        <Setter Property="StringFormat" Value="\{0:#,##0.##\}" />
</Style>

残念ながら、それはテキスト ボックスではなく、プロパティを持つバインディングのものであり、バインディング スタイルを設定する方法がわかりません。

デフォルトのバインディング StringFormats を変更するための正しい構文を教えてもらえますか?

乾杯とティア

マカレックス

4

1 に答える 1

1

これを試して

public class TextBinding:Binding
{
    public TextBinding()
    {
        Mode = BindingMode.TwoWay;
        StringFormat = @"\{0:#,##0.##\}";
        ValidatesOnExceptions = true;
        NotifyOnValidationError = true;
    }
}

   xmlns:myBinding="clr-namespace:WpfApplication2">
<Grid>
    <TextBox Text="{myBinding:TextBinding Path=SomeProperty}"/>
</Grid>

上記の 4 つのバインディング プロパティを設定せずに、この方法ですべてのテキスト ボックスにバインドできます。これらは自動的に適用されます。これがアイデアを得るのに役立つことを願っています。

于 2012-07-24T08:08:01.930 に答える