【问题标题】:How I can bind datatable to LISTBOX in wpf?如何在 wpf 中将数据表绑定到 LISTBOX?
【发布时间】:2011-11-16 16:15:51
【问题描述】:

如何将数据表绑定到 ListBox 和

然后选择我想在 WPF 的 ListBox 中显示的字段。

您能就这个话题提供帮助吗?

感谢您的关注。

【问题讨论】:

标签: c# wpf wpf-controls wpftoolkit


【解决方案1】:

你可以试试这个....

<Window x:Class="BindToAdoDataDemo.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
  <DockPanel>
    <Button Width="120" Height="30" Content="Add" Name="btn" DockPanel.Dock="Top"/>
    <ListBox ItemsSource="{Binding}" DisplayMemberPath="ChildItem"/>
  </DockPanel>
</Window>

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        DataTable dataTable = MakeChildTable();
        this.DataContext = dataTable.Rows;
        this.btn.Click += delegate
        {
            DataRow row = dataTable.NewRow();
            row["childID"] = 50;
            row["ChildItem"] = "ChildItem " + 50;
            dataTable.Rows.Add(row);    
        };
    }

    private DataTable MakeChildTable()
    {
        DataTable table = new DataTable("childTable");
        DataColumn column;
        DataRow row;

        column = new DataColumn();
        column.DataType = System.Type.GetType("System.Int32");
        column.ColumnName = "ChildID";
        column.Caption = "ID";

        table.Columns.Add(column);

        column = new DataColumn();
        column.DataType = System.Type.GetType("System.String");
        column.ColumnName = "ChildItem";
        column.Caption = "ChildItem";
        table.Columns.Add(column);

        for (int i = 0; i <= 4; i++)
        {
            row = table.NewRow();
            row["childID"] = i;
            row["ChildItem"] = "Item " + i;
            table.Rows.Add(row);
        }

        return table;
    }
}

【讨论】:

    【解决方案2】:

    这是一个纯 XAML 解决方案:

    <DockPanel DataContext="{StaticResource myDataViewSource}">
    
        <ComboBox DockPanel.Dock="Bottom" x:Name="FieldSelector" SelectedIndex="0">
               <ComboBoxItem Content="Field1" Tag="Field1"/>
               <ComboBoxItem Content="Field2" Tag="Field2"/>
               <ComboBoxItem Content="Field3" Tag="Field3"/>
               <ComboBoxItem Content="Field4" Tag="Field4"/>
        </ComboBox>
    
        <ListBox ItemsSource="{Binding}"
                 DisplayMemberPath="{Binding ElementName=FieldSelector,Path=SelectedItem.Tag}" />
    
    </DockPanel>
    

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 2012-06-20
      • 1970-01-01
      • 2012-03-12
      • 2011-02-01
      • 1970-01-01
      • 2013-12-31
      • 2011-07-09
      • 2023-03-11
      相关资源
      最近更新 更多