VS2012 Express に同梱されているデフォルトの WPF リボンを使用しています。
値 1.75 で初期化されたビューモデルで、RibbonTextBox が double プロパティにデータバインドされると、それが表示され、'x' などの非数値文字を入力したときのよう
に赤い色でフレーム化することなく、小数点記号の周りの数値を変更できます
。削除すると、RibbonTextBox に入力し直す方法がありません。意味のない文字は受け入れますが、小数点記号は受け入れません。つまり、小数点記号を削除した後は、むしろ int にデータバインドされているように動作します。
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>
C# コード ビハインド
public double SrcGamma { get; set; } // initialised to 1.75d
注 1 : まず、文化の問題ではないかと疑っていました。私の Windows カルチャ (cs-CZ) では小数点記号として「,」を使用していますが、アプリケーションでは「.」と表示されました。セパレーター。
a) Windows カルチャ セパレータを '.' に設定する 役に立ちませんでした。b)この
SO の質問
に従ってアプリケーション ロケールをオーバーライドした後、正しい Windows カルチャ セパレータが表示されますが、入力することもできません。
注 2 : 調査中に、標準の TextBox (リボンの外側) を追加しました。カスタムの二重検証ルールを追加すると、前述の RibbonTextBox とまったく 同じように動作し始めました。
ご提案いただきありがとうございます。