我創建了Coverter,它僅用於TextBoxes的數字驗證。 一切都很好,我在很少的地方使用它,但有一個地方,它只是不工作,我debbuged它,它開始工作,就像它是模式OneTime。轉換器不想只在一種情況下工作
轉換器:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var val = value.ToString();
return (string.IsNullOrEmpty(val) ? "" : ((val.Substring(val.Length - 1).Equals(",") && val.Count(x => x == ',') < 2) || char.IsDigit(System.Convert.ToChar(val.Substring(val.Length - 1))) ? val : val.Substring(0,val.Length-1)));
}
而且我不知道,如果它的問題,但有一段時間,在窗口中使用,而第二次頁,它不會在頁面工作。 Page:
<TextBox Name="PeselTextBox"
Margin="2,5"
Width="70"
VerticalAlignment="Center"
Text="{Binding ElementName=PeselTextBox,
Path=Text,
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource NumberValidationConverter}}"/>
而在窗口中它是一樣的。 試圖尋找解決方案,但我只是不明白這個錯誤。
作爲備註:您的驗證在至少兩種情況下不起作用:***複製並粘貼***和***在實際輸入***之前移動插入符號*** - 不會假定它始終保留在TextBox的末尾。我已經在Window和Binding中嘗試了你的代碼(不只是一次),所以很奇怪聽到它不適合Page。 –
「綁定」是指定義元素本身。爲什麼? – Sandesh
@KingKing它實際上在其他頁面中工作,只在其中沒有。 – Zeronader