WPF Привязать ListView к источнику данных Oracle - PullRequest
0 голосов
/ 03 августа 2010

Вот часть XAML приложения, над которым я работаю:

<ListView Name="lsvCustomerDetails" ItemsSource="{Binding myDataTable}">
   <ListView.View>
      <GridView>
         <GridViewColumn Header="Script Name" DisplayMemberBinding="{Binding ID}"/>
         <GridViewColumn Header="Status" DisplayMemberBinding="{Binding status}"/>
         <GridViewColumn Header="Date" DisplayMemberBinding="{Binding date}"/>
      </GridView>
   </ListView.View>
</ListView>

и соответствующий VB.NET:

Class Window1
   Public myDataTable As DataTable

   Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
      Dim objOracleConnection As New OracleConnection("Data Source=DB;User Id=user;Password=password;")
      Dim objOracleCommand As New OracleCommand
      Dim objOracleReader As OracleDataReader

      objOracleConnection.Open()

      objOracleCommand.Connection = objOracleConnection
      objOracleCommand.CommandText = "SELECT * FROM customers"
      objOracleReader = objOracleCommand.ExecuteReader()

      Using objOracleConnection
         Dim objOracleAdapter As OracleDataAdapter = New OracleDataAdapter(objOracleCommand.CommandText, objOracleConnection)
         objOracleAdapter.Fill(myDataTable)
      End Using
      lsvCustomerDetails.DataContext = myDataTable
      objOracleConnection.Close()
   End If
End Using

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

Из кода коммутатора
Из csharpcorner
Из блога Аллена Мак

1 Ответ

1 голос
/ 08 июля 2011

Рассматривали ли вы использование LINQ? Это намного проще ...

Добавить модель объекта данных в ваш проект. Прочитайте это и затем используйте LINQ для выполнения привязки.

Что-то вроде:

Dim Context as New myOracleEntityModel

myTable = Context.myCustomers.ToList

myItemSource = From i In myTable
               Select i.ID, i.status, i.date

lsvCustomerDetails.ItemSource = myItemSource

Единственным приемом будет загрузка модели Data Entity для Oracle.

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