none
WPF DataGrid (Может ли так WPF?) RRS feed

  • Вопрос

  • Доброй ночи, сел осваивать WPF, пишу на vb.net. 
    Создал DataGrid

    XAML (показываю только интересующий фрагмент кода, весь шаблон DataGrid это много кода)

    <DataGrid Name="DataGrid1" AutoGenerateColumns="false" Margin="0,32,0,0" CanUserAddRows="False">
     <DataGrid.Columns>
      <DataGridTextColumn Header="Ожидание" Width="70" Binding="{Binding Path=time_wait}">
      </DataGridTextColumn>
     </DataGrid.Columns>
    </DataGrid>

    Заполняем:

    Using cmd As New SqlCommand(Str1, conn)
     Dim da As New SqlDataAdapter()
     da.SelectCommand = cmd
     da.Fill(Table_Test)
    End Using
    DataGrid1.ItemsSource = Table_Test.DefaultView

    Заполнился DataGrid, все красиво.
    Вот теперь, сам вопрос. В DataGrid много столбцов и строк (в XAML показал только нужный), туда заноситься число, скажем в первой строке число 10, в другой 15 возможно ли реализовать следующие:

    Обновлять данные в ячейках, только этого столбца каждую минуту не обновляя весь DataTable и DataGrid ???

    28 сентября 2014 г. 21:33

Ответы

Все ответы

  • Думаю, самый простой способ в данной ситуации обновить нужный столбец в таблице Table_Test минуя адаптер.

    Рекомендую воспользоваться MVVM.

    29 сентября 2014 г. 2:32
  • И при таком раскладе DataGrid обновиться целиком или только нужные ячейки?
    29 сентября 2014 г. 7:57
  • Ну в общем как то так...

     Table_Test.Rows(0).Item(13) = 5

    Теперь назрел другой вопрос. Как все это дело обновлять
    Думаю получить количество строк в Table_test и в цикле уже обновлять?

     Dim Count As Integer = Table_Test.Rows.Count - 1
            For index As Integer = 0 To Count
                Table_Test.Rows(index).Item(13) = Table_Test.Rows(index).Item(13).ToString - 1
            Next

    И вызывать в отдельном потоке, а поток в sleep на нужное время.
    Думаю утечек памяти не будет.

    29 сентября 2014 г. 9:51