我自定义一个只能输入数字的TextBox,现在Textbox能够只输入数字。TextBox与我在ViewModel定义的属性绑定在一起,问题是最开始页面加载,TextBox没有显示数值,
自定义的依赖属性如图
绑定的ViewModel如图
引用自定义的Textbox代码
自定义的Textbox代码
ValueProperty依赖属性注册的时候指定PropertyMetadata,在PropertyChangedCallback中赋值
在PropertyChangedCallback怎么给依赖属性赋值啊?谢谢
@扎伊尔天雕: 大致如下:
public static DependencyProperty ValueProperty = DependencyProperty.Register("Value",typeof("string"),typeof(TextBoxTemplate),new PropertyMetadata(OnValueChanged));
public static void OnValueChanged(DependencyObject sender,DependencyPropertyChangedEventArgs e)
{
TextBoxTemplate tb = (TextBoxTemplate)sender;
string oldValue = (string)e.OldValue;
string newValue = (string)e.NewValue;
RoutedPropertyChangedEventArgs<string> ex = new RoutedPropertyChangedEventArgs<string>(oldValue,newValue,TextBoxTemplate.ValueProperty);
tb.RaiseEvent(ex);
}
试下,不确定一定可行
@jello chen: 报错了,The best overloaded method match for 'System.Windows.RoutedPropertyChangedEventArgs<string>.RoutedPropertyChangedEventArgs(string, string, System.Windows.RoutedEvent)' has some invalid arguments
@扎伊尔天雕: 不好意思,没在IDE写,参数记错了,试试这样
RoutedPropertyChangedEventArgs<string> ex = new RoutedPropertyChangedEventArgs<string>(oldValue,newValue);
tb.RaiseEvent(ex);
@扎伊尔天雕: 如果不行,方便的话,将你自定义的TextBox发我调试下
@jello chen: 已经调通了,非常谢谢的回复!
@扎伊尔天雕: 很高兴能帮到你