2015-12-28 4 views
0

Мне действительно плохо, что я должен спросить об этом. Ответ должен быть очевидным; однако я искал здесь и в Google безрезультатно.Передача переменной из одного окна WPF в другое (C#)

Я совершенно новый для WPF. В Windows Forms, я помню, было очень легко передавать данные между Windows, но я не могу понять это с помощью своего приложения WPF.

Я просто создаю приложение для себя, которое позволит мне получить доступ и вставить данные в базу данных MySQL. Когда нажата кнопка, которую я добавил для просмотра всех записей в таблице, я хочу открыть новое окно. В этом окне будут отображаться только все данные; таблица будет выбрана в MainWindow.

Проблема заключается в следующем: мне нужно что-то для вторичного окна (Вид), чтобы узнать, какая таблица была выбрана. Я, вероятно, буду использовать элемент управления ListBox для выбора таблицы, но в конце дня это действительно не имеет значения. В конце концов, значение будет сохранено в виде строки в переменной. Мне нужно окно «Вид», чтобы иметь возможность доступа к этой строке, чтобы он знал, какую таблицу запрашивать. В примере:

// Главное окно

private void viewButton_Click(object sender, RoutedEventArgs e) 
    { 
     var table = "DS"; 
       View viewWindow = new View(); 
       viewWindow.Show();     
     } 

// Окно просмотра

private void windowLoad(object sender, RoutedEventArgs e) 
    { 
     DatabaseConnection myConnection = new DatabaseConnection(); 
     List<string>[] result = myConnection.Select(table); 

     text.Text = MainWindow.test + (result[0][0] + " " + result[1][0] + " " + result[2][0] + " " + result[3][0]); 

    } 

Все, что мне нужно сделать, это передать значение таблицы (которая будет меняться в окончательном приложения на основе на пользовательский ввод), для просмотра. Например, мне это нужно так, что в приведенном выше коде, следующий будет выполняться:

List<string>[] result = myConnection.Select("DS"); 

Я чувствую, как это должно быть очевидно и просто, но я не уверен, как это сделать. Я искренне буду признателен за любую помощь.

+0

Вы нуждаясь сделать это путь MVVM или просто порождая новый вид из другое представление с использованием кода? – aggietech

+0

Хорошей привычкой является сохранение одного окна во всем приложении. WPF предоставляет ContentControl, который позволяет изменять представление по некоторым критериям. – Maximus

ответ

2

Вы можете передать переменную через конструктор, как этот

public View(string table) 
{ 
    this.table = table; 
} 

И когда вы инициализировать окно:

var table = "DS"; 
View viewWindow = new View(table); 
viewWindow.Show(); 
Смежные вопросы