2013-07-14 23 views
2

我有一个WPF用户控件,它具有Control类型的属性,以将它与其将发送按键的另一个控件(通常是文本框)关联。 我可以在XAML中分配这个属性,它编译并在运行时工作如何在XAML中分配Control类型的属性 - 错误

但IDE显示错误“38该方法或操作未实现。”在Tar​​getControl分配上。

<my:NumericButtonsControl 
x:Name="NumericButtons" 
TargetControl="{x:Reference Name=DataEntryTextBox}" /> 

有问题的用户控件的代码如下所示:

public partial class NumericButtonsControl : UserControl 
{ 
    private Control _TargetControl; 

    public Control TargetControl 
    { 
     get 
     { 
      return _TargetControl; 
     } 
     set 
     { 
      _TargetControl = value; 
     } 
    } 
} 

回答

3

当你写一个WPF应用程序,你可能要避免使用x:Reference,因为它是2009年XAML的功能,它是仅适用于宽松的XAML。

或者,您可以使用绑定及其ElementName属性。但为了工作,您需要使TargetControl成为依赖项属性。然后,它会是这样的:

C#

public Control TargetControl 
{ 
    get { return (Control)this.GetValue(TargetControlProperty); } 
    set { this.SetValue(TargetControlProperty, value); } 
} 

public static readonly DependencyProperty TargetControlProperty = 
    DependencyProperty.Register("TargetControl", 
           typeof(Control), 
           typeof(NumericButtonsControl), 
           new PropertyMetadata(null)); 

XAML:

<my:NumericButtonsControl 
    x:Name="NumericButtons" 
    TargetControl="{Binding ElementName=DataEntryTextBox}" /> 
+0

酷。这样可行。我无法弄清楚Google如何解决这个问题。猜测依赖属性很重要,但我真的不明白为什么......谢谢:) –

相关问题