Как программно изменить title другого окна? И как программно менять xaml элементы?

213
30 декабря 2017, 01:33

Как программно изменить title другого xaml окна? Из xaml страницы? Пробовал так - MainMenu.Title = "new title";(MainMenu объявил), но выбивает ошибку -

System.NullReferenceException: 'Object reference not set to an instance of an object.'

И как программно менять xaml элементы? Например колонки в dataGrid, не только их имя но и количество и т.д.?

Answer 1

Например так: у меня есть MainWindow с кнопкой и Window1 с кнопкой, в Window1 я добавляю параметр в конструктор и поле для хранения ссылки, по нажатию кнопки теперь я могу обратиться по ссылке к этому окну, на которое получена ссылка:

public partial class Window1 : Window
{
    Window targetWindow;
    public Window1(Window targetWindow)
    {
        InitializeComponent();
        this.targetWindow = targetWindow;
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        targetWindow.Title = "New title!";
    }
}

Теперь, при создании окна Window1 необходимо передать ему ссылку на окно, в котором нужно менять свойство, обработчик клика по кнопке MainWindow:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var window = new Window1(this);
        window.ShowDialog();
    }
}
READ ALSO
Парсер json с декодированием текста

Парсер json с декодированием текста

В Json встречаются такие тексты \u0432\u043b\u0435, есть ли какой нибудь online парсер Json, который бы декодировал такой текст ?

240
Как передать в контроллер значение из списка select

Как передать в контроллер значение из списка select

Не ожидал наткнуться на проблему в таком вопросе и тем не менееВот мое представление :

229
C# наследование контрола

C# наследование контрола

Надо добавить к GroupBox ещё одну property как сделать клас со всем что есть у groupbox и добавить собственое свойство?

247