Как связать свойство унаследованного класса от абстрактного класса - PullRequest
0 голосов
/ 16 октября 2019

У меня есть абстрактный класс с некоторыми унаследованными классами:

public abstract class Base
{    
    public Base()
    {
    }
}

public class InheritedA : Base
{
    public bool PropertyA { get; set; }

    public InheritedA()
    {
    }
}

public class InheritedB : Base
{
    public bool PropertyB { get; set; }

    public InheritedB()
    {
    }
}

Как я могу связать в XAML PropertyA унаследованного класса, когда у меня есть только «Базовый» класс, на который есть ссылка в классе datacontext:

public class DataContextHere: INotifyPropertyChanged
{
    public Base baseClass{ get; set; }
}

Что-то похожее на это?:

<RadioButton IsChecked="{Binding baseClass.PropertyA}">

Отредактированный бонус: И, возможно ли связывание, только если логическое свойство существует и имеет значение true?

<RadioButton IsChecked="{Binding baseClass.PropertyA}">
<RadioButton IsChecked="{Binding baseClass.PropertyB}">

В этом случае проверяется первая радиокнопка, если на InheritedA имеется ссылка в baseClass, или вторая, если на InheritedA имеется ссылка.

Спасибо

1 Ответ

1 голос
/ 16 октября 2019

Как и вы, при условии, что baseClass является открытым свойством , которое фактически возвращает Inherited экземпляр:

<RadioButton IsChecked="{Binding baseClass.PropertyA}">

public Base baseClass { get; } = new Inherited();
...