2013-08-16 6 views
0

У меня есть Datagrid, в котором есть 3 столбца. Значения двух столбцов извлекаются из базы данных и заполняются, тогда как третий столбец представляет собой текстовое поле, в которое пользователь вводит значение. Я должен сохранить это значение в базе данных. Я столкнулся с некоторыми проблемами здесь. Когда я ввожу значение в пользовательский интерфейс, он показывает нуль в фоновом коде. Что я делаю неправильно?Чтение из текстового поля Datagrid

<DataGrid AutoGenerateColumns="False" Height="233" Name="dataGrid1" Width="360" > 
    <DataGrid.Columns> 

    <DataGridTextColumn Header="x" Binding="{Binding Path=x}" Width="120" IsReadOnly="True" /> 
    <DataGridTextColumn Header="y" Binding="{Binding Path=y}" Width="120" IsReadOnly="True"/> 
    <DataGridTextColumn Header="Value/Ref" Width="120" Binding="{Binding Path=z, Mode=TwoWay}" IsReadOnly="False" /> 

    </DataGrid.Columns> 

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

+2

Вы попробовали 'Binding =" {Binding Path = z, Mode = TwoWay, UpdateSourceTrigger = PropertyChanged} "'? – dkozl

+0

Да, но его не работает :( – harin04

+0

Является ли setter на свойстве z, который называется? Можете ли вы разместить соответствующий код? Как выглядит объект, который содержит x, y и z? – dkozl

ответ

0

С кодом XAML и этим простым фрагментом кодом, поведение, как вы хотите (что я понимаю):

class A 
    { 
     private string _x, _y, _z; 

     public string x { get { return _x; } set { _x = value; } } 
     public string y { get { return _y; } set { _y = value; } } 
     public string z { get { return _z; } set { _z = value; } } 
    } 

public partial class MainWindow : Window 
    { 
     private List<A> myData; 

     public MainWindow() 
     { 
      InitializeComponent(); 

      myData = new List<A>(); 
      myData.Add(new A() { x = "x1", y = "y1" }); 
      myData.Add(new A() { x = "x2", y = "y2" }); 
      myData.Add(new A() { x = "x3", y = "y3" }); 

      dataGrid1.ItemsSource = myData; 
     } 
    } 

Если вы введете какие-либо данные в столбце Value/Ref, список за ним определенно будет обновлен.

Смежные вопросы