对于我一直在努力的项目,我将一些自定义控件从WPF平台移植到UWP。 在WPF方面,它是这样实现的:
public static readonly DependencyProperty MaxLengthProperty = DependencyProperty.Register("MaxLength", typeof(int), typeof(HexBox), new PropertyMetadata(MaxLength_PropertyChanged));
public int MaxLength
{
get { return (int)GetValue(MaxLengthProperty); }
set { SetValue(MaxLengthProperty, value); }
}
private static void MaxLength_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
HexBox hexControl = (HexBox)d;
hexControl.txtValue.MaxLength = (int)e.NewValue;
}
使用MaxLength_PropertyChanged
而不使用参数。
当我尝试在UWP中做同样的事情时,我会收到以下消息:
参数1:无法从'方法组'转换为'对象'
我知道这与传递参数或将它们作为带()的方法一起调用有关。但在WPF中,这种行为是隐含的。
有人有想法吗?
答案 0 :(得分:1)
试试这个:
public static readonly DependencyProperty MaxLengthProperty = DependencyProperty.Register(
"MaxLength",
typeof(int),
typeof(HexBox),
new PropertyMetadata(0, new PropertyChangedCallback(MaxLength_PropertyChanged))
);
private static void MaxLength_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
HexBox hexControl = d as HexBox;
hexControl.txtValue.MaxLength = (int)e.NewValue;
}