Как отобразить данные в TextBox из DataContext?

Рейтинг: 0Ответов: 0Опубликовано: 03.03.2023

Имеется класс CardModel

class CardModel : ObservableObject 
    {
        private string _sh;

        public string Sh
        {
            get { return _sh; }
            set { _sh = value;
                OnPropertyChanged();
            }
        }

        private string _equip;

        public string Equip
        {
            get { return _equip; }
            set { _equip = value; }
        }


        public CardModel()
        {
                        
        }

    }

Имеется форма Card, на ней есть TextBox, который биндит Sh:

<TextBox x:Name="testTB" Text="{Binding Path=Sh, UpdateSourceTrigger=PropertyChanged}"  Height="30" Margin="481,20,-279,380" FontSize="20"/>

У формы есть DataContext

<Window.DataContext>
        <local1:CardModel/>
    </Window.DataContext>

Когда форма открывается, в неё передается sh типа long. И если в инициализации формы написать textbox.text = sh.ToString(); то все работает. Но это неправильно. Я хочу, чтобы textbox биндил данные из DataConext. Я пытаюсь сделать так:

public Window1(long sh)
        {
            InitializeComponent();
            DataContext = new CardModel();
            CardModel card = new CardModel();
            card.Sh = sh.ToString();
        }

Но textbox'у вообще пофигу. Но если запустить цикл с перезаписью переменной внутри CardModel, то textbox вообще с радостью все будет отображать.

Так вот вопрос: как, следуя паттерну MVVM сделать так, чтобы при открытии новой формы, в которую передается инфо с родительской формы, эта информация отображалась в textbox

Ответы

Ответов пока нет.