Обновление GUI-компонента из другого класса C # WPF - PullRequest
0 голосов
/ 07 января 2011

Я пытаюсь обновить компонент графического интерфейса (DataGrid) в одном классе из другого класса.Я использую формы C # и WPF.

Когда я использовал стандартные формы WF, я мог передать ссылку на компонент GUI в качестве параметра функции, необходимой для работы с DataGrid.Тем не менее, я не знаю, как я могу сделать это в WPF.

У меня есть Class1, который имеет компонент GUI, и мне нужно, чтобы Class3 запустил функцию внутри Class2, которая автоматически обновит отображение GUI таблицы данных, найденной в Class1.

Ответы [ 3 ]

1 голос
/ 07 января 2011

Обычно в WPF вы используете привязку данных WPF для привязки сетки к объекту, реализующему один из "наблюдаемых" классов / интерфейсов, таких как INotifyPropertyChanged или ObservableCollection<>.Таким образом, вы можете работать с данными как с объектами, и привязка данных обеспечит отражение этих изменений в сетке.

0 голосов
/ 07 января 2011

Я узнал, как я могу передать сетку данных WPF в качестве параметра. Это так же, как в WF, единственная проблема в том, что я не импортировал обязательный элемент для WPF DataGrid.

Требуется импорт

using Microsoft.Windows.Controls

Используя вышеизложенное, импорт разрешает доступ к DataGrid, поэтому вы можете выполнить следующее

private void myMethod(DataGrid myTable){}

Спасибо всем за помощь

0 голосов
/ 07 января 2011

Если вы не готовы использовать привязку данных и хотите сделать что-то сложное, вы можете. Вы просто делаете то же самое, что и в WinForms. Я не уверен, какая у вас проблема, но из того, что вы описали:

public class Class3 {
    public void RunTheFunctionInClass2(Class1 window, Class2 class2) {
        class2.TheFunction(window.TheDatagrid);
    }
}

А в Class1.xaml:

<DataGrid Name="TheDataGrid" ... />

Предполагается, что Class1 и Class3 находятся в одной сборке - по умолчанию поле TheDataGrid будет иметь видимость internal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...