2012-07-24 70 views
0

我創造了很多文本框的形式有如下聲明的文本屬性:更改默認綁定/文本框的StringFormat在XAML

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 - 或者任何人都可以建議我怎麼能做我想要的?

歡呼聲和TIA

mcalex

回答

0

試試這個

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處房產。我希望這會幫助你獲得想法。

+0

這幾乎完成了這項工作。但是,當我從DataSources拖放字段到設計器的文本框中時,它將覆蓋'「{myBinding:TextBinding ...」,並用標準綁定語法替換它。這就是爲什麼我希望有一個默認/模板類型的解決方案 PS:試圖upvote,但我不知道聲譽 – mcalex 2012-07-24 10:32:07