Как связать wpf с определенным текстом данных из разных классов?

Привет, ребята. Я очень новичок в WPF. У меня есть два dacactextex в двух разных классах, которые связаны элементами в View, производящих триггеры данных, и один или другой не будут работать, так как они не могут связать оба datacontexts вместе. Как связать xaml из двух разных классов, используя datacontext? Есть ли альтернативный способ сделать это проще?

Класс А

public Window1()
{
    InitializeComponent();
    Appointments = new Appointments();
    DataContext = Appointments;

}

Класс б

private void FilterAppointments()
        {
            this.DataContext = this;

...

1 ответ

Решение

Во-первых, вы никогда не должны использовать DataContext = this; в любой UserControl в серьезном приложении WPF. Во-вторых, вы должны искать шаблон проектирования MVVM, который предоставляет идею модели представления для каждого представления. Ваш Window или же UserControl являются "Представлениями", и ваши модели представлений - это просто классы, которые содержат все свойства данных, которые вам нужно отображать в вашем представлении.

Поэтому вы должны объявить класс модели представления (который реализует INotifyPropertyChanged интерфейс) и поместите все, что вы хотите, чтобы данные связывались с этим Наконец, вы должны установить этот объект как DataContext стоимость имущества. Таким образом, вы получите доступ ко всем нужным вам данным.

Глядя на ваш вопрос, мне пришло в голову, что вы, возможно, установили DataContext в this чтобы вы могли использовать свойства, которые вы объявили в своем Window или же UserControl, Если это так, то вы не должны устанавливать DataContext в thisвместо того, чтобы использовать RelativeSource Binding чтобы получить доступ к свойствам. Это освободило бы фактическое DataContext быть установленным так, как вам нравится. Попробуй это Binding в пределах Window или же UserControl:

<TextBlock Text="{Binding PropertyName, RelativeSource={RelativeSource 
    AncestorType={x:Type YourPrefix:YourWindowOrControl}}}" />
Другие вопросы по тегам