wpf mvvm具有非依赖属性?
发布时间:2020-12-14 04:58:19 所属栏目:百科 来源:网络整理
导读:我有一个小(我希望)的问题.我有一个wpf项目,我使用MVVM,但我需要设置文本框的“SelectedText”属性. “selectedText”不是依赖属性,所以我不能使用绑定… 我怎么解决这个问题? 解决方法 如果您只需要从VM到控件的值赋值,则可以使用这样的AttachedProperty.
我有一个小(我希望)的问题.我有一个wpf项目,我使用MVVM,但我需要设置文本框的“SelectedText”属性. “selectedText”不是依赖属性,所以我不能使用绑定…
我怎么解决这个问题? 解决方法
如果您只需要从VM到控件的值赋值,则可以使用这样的AttachedProperty.
public class AttachedProperties { private static DependencyProperty SelectedTextProperty = DependencyProperty.RegisterAttached("SelectedText",typeof(string),typeof(AttachedProperties),new PropertyMetadata(default(string),OnSelectedTextChanged))); private static void OnSelectedTextChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) { var txtBox = d as TextBox; if (txtBox == null) return; txtBox.SelectedText = e.NewValue.ToString(); } public static string GetSelectedText(DependencyObject dp) { if (dp == null) throw new ArgumentNullException("dp"); return (string)dp.GetValue(SelectedTextProperty); } public static void SetSelectedText(DependencyObject dp,object value) { if (dp == null) throw new ArgumentNullException("dp"); dp.SetValue(SelectedTextProperty,value); } } 和用法 <!-- Pls note,that in the Binding the property 'SelectedText' on the VM is refered --> <TextBox someNs:AttachedProperties.SelectedText="{Binding SelectedText}" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |