我有一個Telerik RadDatePicker,我綁定到SelectedDate屬性。我希望此控件在控件中設置的默認日期被刪除/刪除時顯示驗證錯誤。我能夠實現這一目標,但問題在於驗證錯誤僅在按下Enter或當我們在控件外單擊時纔會發生。更新源不丟失焦點 - WPF Telerik RADDatePicker
有沒有辦法讓RadDatePicker在不移動焦點的情況下更新源代碼? (嘗試UpdateSourceTrigger = PropertyChanged,但它仍然沒有工作)
我有一個Telerik RadDatePicker,我綁定到SelectedDate屬性。我希望此控件在控件中設置的默認日期被刪除/刪除時顯示驗證錯誤。我能夠實現這一目標,但問題在於驗證錯誤僅在按下Enter或當我們在控件外單擊時纔會發生。更新源不丟失焦點 - WPF Telerik RADDatePicker
有沒有辦法讓RadDatePicker在不移動焦點的情況下更新源代碼? (嘗試UpdateSourceTrigger = PropertyChanged,但它仍然沒有工作)
您可以使用行爲,捕獲無論(擊鍵,值更改等)和強制數據綁定更新。
我寫了一個類似的Silverlight的TextBox,因爲在Silverlight中,你不能像WPF一樣更改UpdateSourceTrigger。
您可以使用下面的代碼,並進行必要的調整:
public class TextBoxUpdateBehavior : Behavior<TextBox>
{
public TextBoxUpdateBehavior()
{
}
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.TextChanged += AssociatedObjectOnTextChanged;
}
private void AssociatedObjectOnTextChanged(object sender, TextChangedEventArgs args)
{
var bindingExpr = AssociatedObject.GetBindingExpression(TextBox.TextProperty);
bindingExpr.UpdateSource();
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.TextChanged -= AssociatedObjectOnTextChanged;
}
}
我可能是有點晚了,但你可以使用RadDatePicker
的CurrentDateTimeText屬性來延長zish的回答,我用RadDatePicker的SelectedDate屬性綁定到我的VM的DateTime? SelectedDate屬性沒有在綁定中設置驗證。在綁定中,我使用RadDatePicker的CurrentDateTimeText屬性綁定到我的VM的字符串SelectedDateText屬性,其中ValidatesOnErrors = True。然後,在VM中,我驗證了這個!String.IsNullOrEmpty(SelectedDateText)。這給了我想要的行爲,而不需要行爲。