2013-07-14 27 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如何解決這個問題。猜測依賴屬性很重要,但我真的不明白爲什麼......謝謝:) –

相關問題