代码之家  ›  专栏  ›  技术社区  ›  Riddari

WPF将ListView绑定到Oracle数据源

  •  0
  • Riddari  · 技术社区  · 15 年前

    以下是我正在处理的应用程序的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
    

    此代码是否正确填写此表?如果不是,为什么?老实说,我发现了一些关于如何做这类事情的观点,其中一些观点与以下内容相关:

    From switchonthecode
    From csharpcorner
    From Allen Mack's blog

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community CDub    8 年前

    你考虑过使用LINQ吗?更容易……

    将数据实体模型添加到项目中。读 this 然后使用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
    

    唯一的技巧是为Oracle加载数据实体模型。