Как читать значения из элементов управления столбцов Gridview в WPF - PullRequest
1 голос
/ 10 апреля 2009

Я использую приложение WPF, в котором я поместил элемент управления listview, который имеет 3 столбца gridview. Первый столбец Gridview имеет метку Control, а остальные 2 столбца gridview имеют элемент управления textbox.

Теперь моя проблема в том, что если пользователь вводит значение в первый столбец текстового поля Gridview, второй столбец текстового поля gridview должен быть обновлен до некоторого значения. Есть ли способ сделать это.

Я заполняю представление списка данными из кода за файлом.

А также есть ли способ получить значение элемента управления меткой в ​​1-м столбце таблицы.

Заранее спасибо Urs Frnd:)

Ответы [ 2 ]

0 голосов
/ 10 апреля 2009

Из того, что я вижу, WPF GridView - это просто режим просмотра (как мне кажется) для элемента управления ListView. Как и в большинстве вещей в WPF, я бы посоветовал вам сделать это с шаблоном ViewModel.

  • Это означает, что вы создали объект ViewModel для каждой строки в сетке. Реальная модель будет вашей строкой DataTable. Модель View заполнена данными из реальной модели. То есть вы создаете новый экземпляр ViewModel из каждой строки в вашей DataTable. Затем вы заполняете Grid объектами ViewModel
  • Модель View предоставляет свойства для каждого значения, которое необходимо отобразить в реальном представлении. Так что в этом случае ваша ViewModel будет выставлять 3 свойства (для каждого столбца).
  • Подключите ваш столбец пользовательского интерфейса для привязки к соответствующим свойствам в ViewModel.
  • Теперь ваш ViewModel.Property1 будет содержать логику обновления Property2 с правильным вычисленным значением при изменении. Оба они должны запускать уведомления PropertyChanged, а GridView должен отражать обновленные значения в обеих ячейках.
0 голосов
/ 10 апреля 2009

Вы можете связать два TextBox вместе, используя привязку ElementName. Столбец Grid, в котором они находятся, не имеет значения. В приведенном ниже примере текст в textBox2 автоматически обновляется до текста, введенного в textBox1.

    <TextBox Text="TextBox" Name="textBox1" />
    <TextBox Text="{Binding ElementName=textBox1, Path=Text}" Name="textBox2"/>

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

textBox2.Text = textBox1.Text + " some text";

Чтобы получить значение элемента управления Label, необходимо присвоить ему имя, а затем использовать его в своем коде за файлом, используя это имя.

XAML:

<Label Name="myLabel" Content="Label"/>

C #:

 // Assuming you have assigned text content to the Label as in the above XAML.
 string labelContent = myLabel.Content as string; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...