无法从方法组转换为对象移植WFP => UWP

时间:2017-05-22 12:58:09

标签: c# wpf uwp custom-controls porting

对于我一直在努力的项目,我将一些自定义控件从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中,这种行为是隐含的。

有人有想法吗?

1 个答案:

答案 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;
}