C# Can';t访问用户控件wpf c上的公共属性#
我试图访问用户控件上的公共属性,但收到此消息。我想我不需要初始化用户控件,对吗?当我尝试访问公共属性DirectorySetter.DirectoryPath时,会收到以下消息: 非静态字段、方法或对象需要对象引用 属性'DirectorySetter.DirectoryPath' 下面是我的用户控制代码: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
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 ;