Как я могу получить доступ к классу, переданному в окно WPF? - PullRequest
0 голосов
/ 24 июня 2019

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

Вот код для отображения окна WPF.Когда я пытаюсь получить доступ к newproduct из метода RewriteTitle, я не могу.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Inventory_Controller
{
    /// <summary>
    /// Interaction logic for TitleWindow.xaml
    /// </summary>
    public partial class TitleWindow : Window
    {
        public TitleWindow(Product newproduct)
        {
            this.DataContext = newproduct;  //This didn't help

            InitializeComponent();

        }

        private void RewriteTitle(object sender, TextChangedEventArgs e)
        {

            // Here I want to access newproduct 


        }
    }
}

1 Ответ

0 голосов
/ 24 июня 2019

Самый простой способ сделать это - использовать приватное поле.Вы должны создать личное поле только для чтения, чтобы установить значение.

    public TitleWindow(Product newproduct)
    {
        this.DataContext = newproduct; 

        _product = newproduct;

        InitializeComponent();
    }

    private readonly Product _product;

И тогда вы можете найти _product в RewriteTitle

    private void RewriteTitle(object sender, TextChangedEventArgs e)
    {

        // Here I want to access newproduct 
        // Use _product = xx Or _product.Foo = xx;

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