2015-09-04 175 views
2

我有这种自定义控件,但不能从我的主要XAMLWPF自定义用户控件 - “会员X无法识别或访问”

<UserControl x:Class="FireflyMmwDiagnostics.Controls.RegisterTextBox" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="300"> 
<Grid> 
    <Label Name="LabelRegisterTitle"/> 
</Grid> 

public partial class RegisterTextBox : UserControl 
{ 
    public RegisterTextBox() 
    { 
     InitializeComponent(); 
    } 

    public string RegisterTitle 
    { 
     get { return this.LabelRegisterTitle.Content.ToString(); } 
     set { this.LabelRegisterTitle.Content = value; } 
    } 

访问它的成员,这是什么我在主XAML中出现错误,指出“成员RegisterTitle无法识别或访问”:

<Controls:RegisterTextBox RegisterTitle="This Is A Test"/> 

我观看了一些YouTube视频,这正是他们如何做到的,出于某种原因,这对他们有效。 请咨询这里可能是什么问题。 谢谢!

回答

2

试着改变你的财产将被声明为Dependency Properties

这将有助于它具有示例代码 - Why am I seeing a “member is not recognized or is not accessible” error on my WPF User Control?

更新

你的代码工作正常,我没有使用依赖属性,所以几件事情可以尝试:

  • 在你的控制下,请确保您有</UserControl>
  • 变化Controls:RegisterTextBox结束它使用较低的情况下,“C”,所以controls:RegisterTextBox
+0

谢谢!我可能不遵循它,所以它仍然不适合我。我做了正确的更改:'

+0

我刚刚尝试了您的代码而未使用“依赖属性”,并且工作正常。只是为了检查,你在用户控制的最后有''?此外,更改''使用小写'c',所以'' –

+0

是的,我做最后有'',错过复制/粘贴。但由于某种原因,我仍然无法完成它的工作。顺便说一句,为什么要将小写'c'封装在'FireflyMmwDiagnostics.Controls'命名空间中?它不会以较低的'c'编译。 – SYB

2

您可能需要以重建为它看到RegisterTitle

如果这不起作用,请确保您在XAML中定义了Controls在您的项目中,否则它肯定无法看到它!

例如:

<Window xmlns:Controls="clr-namespace:FireflyMmwDiagnostics.Controls.RegisterTextBox"> 
+0

谢谢,我做到了..我会尝试上面的建议 – SYB