2010-05-11 48 views
0
分配一個浮到小數點財產

我有一個無外觀的控制模板下面的XAML代碼:通過風格二傳手在WPF

<Style x:Key="NumericUpDownStyle" TargetType="controls:NumericUpDown"> 
    <Style.Setters> 
     <Setter Property="Change" Value="{x:Static local:Preferences.ChangeAmount}"/> 
    </Style.Setters> 
</Style> 

Change財產上NumericUpDown控制是一個小數,和靜態Preferences.ChangeAmount是一個浮點數。

這失敗,出現以下錯誤:

「1」是不是財產「更改」

有沒有辦法讓風格浮動轉換爲十進制有效的價值?不能更改NumericUpDown控件(我模板化的基礎控件)或Preferences.ChangeAmount屬性。我可以在一些地方做一些靜態的包裝屬性來做投射,但這對我來說似乎很愚蠢。

任何想法?

回答

0

而不是直接使用{x:Static ...}標記擴展的,你可以嘗試把它包在一個Binding這樣的:

<Setter Property="Change" Value="{Binding Source={x:Static local:Preferences.ChangeAmount}, Mode=OneWay}"/> 

這可能已經工作作爲Binding通常需要必要的轉換的照顧。如果不起作用,您可以在Binding中添加適當的IValueConverter

爲了提高性能,您還可以將Mode屬性設置爲OneTime而不是OneWay。但是,我不確定這是否會起作用。祝你好運!