一些平常用到的行為,慢慢整理下。從最簡單的開始。
TextBox預設的更新行為是在失去焦點時進行的,為了方便在輸入框的值發生變化時就即時更新,在Prism裡就提供了即時更新綁定的Text的行為,叫做“UpdateTextBindingOnPropertyChanged”。
同樣的事也發生在PasswordBox裡,有時候在綁定Password的時候也需要即時更新輸入的綁定值,那麼參考這個行為隨便寫個。
整個代碼也非常簡單,如下:
1 public class UpdatePasswordBindingOnPropertyChanged : Behavior<PasswordBox>
2 {
3 private BindingExpression _expression;
4
5 protected override void OnAttached()
6 {
7 base.OnAttached();
8
9 _expression = this.AssociatedObject.GetBindingExpression(PasswordBox.PasswordProperty);
10 this.AssociatedObject.PasswordChanged += this.OnPasswordChanged;
11 }
12
13 protected override void OnDetaching()
14 {
15 base.OnDetaching();
16
17 this.AssociatedObject.PasswordChanged -= this.OnPasswordChanged;
18 _expression = null;
19 }
20
21 private void OnPasswordChanged(object sender, EventArgs args)
22 {
23 _expression.UpdateSource();
24 }
25 }http://www.cnblogs.com/HalfwayMonk/admin/EditPosts.aspx?opt=1