C # WPF, передающее значение между windows2 и windows1


1 принят

Поскольку C # является объектно-ориентированным, правильным способом сделать это было бы создание экземпляра вашего Collectionкласса в более низком абстрактном слое, чем само окно (поскольку вы планируете повторно использовать одну и ту же коллекцию в нескольких окнах) - например , статически в глобальном Appконтексте - и затем использовать привязку данных для синхронизации коллекции между вашими окнами. (Чтобы это работало, как ожидалось, в реальном времени ваш Collectionкласс также должен реализовать IObservableи INotifyPropertyChangedпроинформировать контекст окна, что его необходимо обновить с помощью новых элементов.)


0

Есть так много способов сделать это, я говорю вам некоторые из них ..

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

В Window2:

//Calling MainWindow from Window2
var form = App.Current.MainWindow as ManinWindow;
form.textBox1.Text = "My Art";
MessageBox.Show(form.textBox1.Text);

или вы можете передать аргументы от вас Window1 в Window2 следующим образом:

//Window 1
private void btnShowWindow2_Click(object sender, RoutedEventArgs e)
{
    var form = new Window2("My Art", 100);
    form.Show();
}

//Window 2 Constructor
public Window2(string ArtName, int Price)
{
     MessageBox.Show("ArtName: " + ArtName + "
Price: " Price.ToString() + " dollars");
}

или

//Window1
private void btnShowWindow2_Click(object sender, RoutedEventArgs e)
{
    var form = new Window2()
    {
        Price = 200,
        ArtName = "My Art"
    };
    form.Show();
}

//Window2

publuc string ArtName {get; set;}
publuc int Price {get; set;}

private void Window2_Loaded(object sender, RoutedEventArgs e)
{
     MessageBox.Show("ArtName: " + ArtName + "
Price: " Price.ToString() + " dollars");
}

0

вероятно, самый простой способ сделать это - использовать настройки приложения, а также один из моих любимых способов, перейти в «Project WpfApp1 Properties» и перейти на вкладку «Настройки», там вы можете создать свои настройки, создать 1 его имя «IDArt» и установите для него тип строки и другое имя параметра «SellPrice» и установите для него двойной тип. теперь для доступа к этим настройкам все, что вам нужно сделать, это использовать этот код:

WpfApp1.Properties.Settings.Default.IdArt ;,

WpfApp1.Properties.Settings.Default.SellPrice;

C #, WPF, дллы,

c#,wpf,dll,

0

Ответов: 3


1 принят

Поскольку C # является объектно-ориентированным, правильным способом сделать это было бы создание экземпляра вашего Collectionкласса в более низком абстрактном слое, чем само окно (поскольку вы планируете повторно использовать одну и ту же коллекцию в нескольких окнах) - например , статически в глобальном Appконтексте - и затем использовать привязку данных для синхронизации коллекции между вашими окнами. (Чтобы это работало, как ожидалось, в реальном времени ваш Collectionкласс также должен реализовать IObservableи INotifyPropertyChangedпроинформировать контекст окна, что его необходимо обновить с помощью новых элементов.)


0

Есть так много способов сделать это, я говорю вам некоторые из них ..

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

В Window2:

//Calling MainWindow from Window2
var form = App.Current.MainWindow as ManinWindow;
form.textBox1.Text = "My Art";
MessageBox.Show(form.textBox1.Text);

или вы можете передать аргументы от вас Window1 в Window2 следующим образом:

//Window 1
private void btnShowWindow2_Click(object sender, RoutedEventArgs e)
{
    var form = new Window2("My Art", 100);
    form.Show();
}

//Window 2 Constructor
public Window2(string ArtName, int Price)
{
     MessageBox.Show("ArtName: " + ArtName + "
Price: " Price.ToString() + " dollars");
}

или

//Window1
private void btnShowWindow2_Click(object sender, RoutedEventArgs e)
{
    var form = new Window2()
    {
        Price = 200,
        ArtName = "My Art"
    };
    form.Show();
}

//Window2

publuc string ArtName {get; set;}
publuc int Price {get; set;}

private void Window2_Loaded(object sender, RoutedEventArgs e)
{
     MessageBox.Show("ArtName: " + ArtName + "
Price: " Price.ToString() + " dollars");
}

0

вероятно, самый простой способ сделать это - использовать настройки приложения, а также один из моих любимых способов, перейти в «Project WpfApp1 Properties» и перейти на вкладку «Настройки», там вы можете создать свои настройки, создать 1 его имя «IDArt» и установите для него тип строки и другое имя параметра «SellPrice» и установите для него двойной тип. теперь для доступа к этим настройкам все, что вам нужно сделать, это использовать этот код:

WpfApp1.Properties.Settings.Default.IdArt ;,

WpfApp1.Properties.Settings.Default.SellPrice;

C #, WPF, дллы,
Похожие вопросы