2012-10-06 33 views
1

我使用VS2012 Express附帶的默認WPF功能區。
當RibbonTextBox數據綁定到值爲1.75的viewmodel中的double屬性時,它將顯示它,並且允許修改小數點分隔符周圍的數字,而不會將其框爲紅色,就像輸入非數字字符(如「x」等)時一樣。
但是,一旦小數分隔符被刪除,就沒有辦法將其輸入到RibbonTextBox中。它接受無意義的字符,但不接受小數點分隔符。換句話說,在刪除小數分隔符後,它的行爲相當於int的數據綁定。WPF RibbonTextBox數據綁定加倍

XAML

xmlns:rib="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon" 
... 
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" > 
<Label Content="Source Gamma " /> 
<rib:RibbonTextBox Text="{Binding SrcGamma, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50"/> 
</StackPanel> 

背後

public double SrcGamma { get; set; } // initialised to 1.75d 

注1 C#代碼:首先,我懷疑這是一個文化問題。我的Windows文化(cs-CZ)使用','小數點分隔符,但我的應用程序顯示'。'分隔器。
a)將Windows文化分隔符設置爲'。'沒有幫助。
b)根據this SO問題覆蓋應用程序語言環境後,顯示正確的Windows文化分隔符,但不能輸入。

注2: 在我的調查中,我添加了一個標準的TextBox(功能區外)。在向其添加自定義雙重驗證規則後,它開始表現,就像提到的RibbonTextBox一樣,

在此先感謝您的任何建議。

回答

0

答案被藏在此SO Article

奇怪的行爲是由引起UpdateSourceTrigger = PropertyChanged我曾經在.NET 3.5中使用它以預期的方式表現。刪除後,小數點分隔符現在可以毫無問題地添加。

嗯,MS有理由做這個改變,所以讓我們牢記它。

+0

這裏沒有文章SO ... –

+0

對不起,我的意思是SO問題... – user681768917