Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在派生类中找不到BindingExpression路径错误属性_C#_Xaml - Fatal编程技术网

C# 在派生类中找不到BindingExpression路径错误属性

C# 在派生类中找不到BindingExpression路径错误属性,c#,xaml,C#,Xaml,我混淆了基类的绑定内部属性 我有下面的类A、B,我试图在XAML中绑定类“A”属性(它是内部的) 问题: 在为类A创建实例时,DataContext被设置为类A,并且可以在XAML中绑定类A的内部属性,因为该场景绑定属性可以正常工作 问题: 但是,与我创建的类B的实例相同的场景是从类A继承的,现在DataContext被设置为类B,无法绑定类A的内部属性(从基类),并且错误抛出BindingExpression路径错误属性“MyProperty”在类B中找不到 为什么场景不起作用?即使它有相同的

我混淆了基类的绑定内部属性

我有下面的类A、B,我试图在XAML中绑定类“A”属性(它是内部的)

问题:

在为类A创建实例时,DataContext被设置为类A,并且可以在XAML中绑定类A的内部属性,因为该场景绑定属性可以正常工作

问题:

但是,与我创建的类B的实例相同的场景是从类A继承的,现在DataContext被设置为类B,无法绑定类A的内部属性(从基类),并且错误抛出BindingExpression路径错误属性“MyProperty”在类B中找不到


为什么场景不起作用?即使它有相同的基类A,请分享您的想法。

我认为在我自己的应用程序中,我必须将用于绑定的所有get/set属性公开,但由于您将其作为内部属性,我认为这很奇怪。也许您可以尝试将其公开(以隔离问题).Hi Michel,我已经尝试过了,因为属性访问是公共的,无法获取错误“BindingExpression路径错误属性”MyProperty“未在类B上找到”。但仍然无法访问基类(A)场景DataContext的属性被设置为B类实例。你好,Jeya,在这种情况下,希望其他人能够提供答案。即使没有将任何内容设置为公共,我也无法重现您的问题。我认为在我自己的应用程序中,我必须将用于绑定的所有get/set属性设置为公共,但由于您将其作为内部属性,并且我认为这是可行的很奇怪。也许你可以尝试将其公开(以隔离问题)。嗨,Michel,我已经尝试过了,因为属性访问是公开的,无法获取错误“BindingExpression路径错误属性”MyProperty“未在类B上找到”。但仍然无法访问基类(A)场景DataContext的属性设置为Class B实例。你好,Jeya,在这种情况下,希望其他人能够提供答案。即使没有将任何内容设置为Public,我也无法重现您的问题。
  public class A
{
    internal int MyProperty
    {
        get { return (int)GetValue(MyPropertyProperty); }
        set { SetValue(MyPropertyProperty, value); }
    }

    // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
    internal static readonly DependencyProperty MyPropertyProperty =
        DependencyProperty.Register("MyProperty", typeof(int), typeof(A), new PropertyMetadata(0));


}

public class B : A
{

}