C# Can';t访问用户控件wpf c上的公共属性#

C# Can';t访问用户控件wpf c上的公共属性#,c#,wpf,user-controls,wpf-controls,C#,Wpf,User Controls,Wpf Controls,我试图访问用户控件上的公共属性,但收到此消息。我想我不需要初始化用户控件,对吗?当我尝试访问公共属性DirectorySetter.DirectoryPath时,会收到以下消息: 非静态字段、方法或对象需要对象引用 属性'DirectorySetter.DirectoryPath' 下面是我的用户控制代码: public部分类DirectorySetter:UserControl { 公共目录设置器() { 初始化组件(); } 公共字符串目录路径 { 得到 { 返回txtDirectoryPa

我试图访问用户控件上的公共属性,但收到此消息。我想我不需要初始化用户控件,对吗?当我尝试访问公共属性DirectorySetter.DirectoryPath时,会收到以下消息:

非静态字段、方法或对象需要对象引用 属性'DirectorySetter.DirectoryPath'

下面是我的用户控制代码:

public部分类DirectorySetter:UserControl
{
公共目录设置器()
{
初始化组件();
}
公共字符串目录路径
{
得到
{
返回txtDirectoryPath.Text;
}
设置
{
txtDirectoryPath.Text=值;
}
}
}
以下是使用用户控件的xaml:



任何建议或帮助都会很好

如果您想从
xaml
访问您的属性并绑定到它,您需要在
UserControl
类中实现一个依赖属性

// Dependency Property
public static readonly DependencyProperty DirectoryPathProperty = 
     DependencyProperty.Register( "DirectoryPath", typeof(string),
     typeof(DirectorySetter), new FrameworkPropertyMetadata(string.Empty));

// .NET Property wrapper
public string DirectoryPath
{
    get { return (string)GetValue(DependencyProperty ); }
    set { SetValue(DependencyProperty , value); }
}
来自Msdn的其他资源


您没有在实际发生错误的地方发布代码,在您试图访问“公共属性”的地方

所以我猜你是想做些什么

DirectorySetter.DirectoryPath = "asd";
这将不起作用,因为您的类和属性不是静态的

但您可以做的是(xaml):


错误信息非常清楚。阅读一些关于类和引用的OOP基础知识如果您想从xmal引用该属性,它需要是一个依赖属性
 <UserControls:DirectorySetter x:Name="myUserControl"/>
var s = (myUserControl as DirectorySetter).DirectoryPath ;