Wpf table.defaultview和listview.itemsource之间是否存在双向绑定?

Wpf table.defaultview和listview.itemsource之间是否存在双向绑定?,wpf,listview,data-binding,Wpf,Listview,Data Binding,我有一个stackpanel,在代码隐藏中创建了多个用户控件。当我生成这些usercontrols时,应用程序中有一些表正在被数据填充,然后我单击一个按钮,在后面的代码中,我想获取表中填充的数据,但当我逐步执行代码时,表似乎没有被刷新/更新/填充新数据。我是否需要将某些内容设置为双向绑定或更新某些内容? 这是我的密码 private void TestGridValues_OnClick(object sender, RoutedEventArgs e) { StackP

我有一个stackpanel,在代码隐藏中创建了多个用户控件。当我生成这些usercontrols时,应用程序中有一些表正在被数据填充,然后我单击一个按钮,在后面的代码中,我想获取表中填充的数据,但当我逐步执行代码时,表似乎没有被刷新/更新/填充新数据。我是否需要将某些内容设置为双向绑定或更新某些内容? 这是我的密码

private void TestGridValues_OnClick(object sender, RoutedEventArgs e)
    {
        StackPanel stackPanel = this.TestGrids;

        foreach (UserControl child in stackPanel.Children)
        {

            Grid content = child.Content as Grid;
            ListView view = content.Children[0] as ListView;
            ItemCollection itemCollection = view.Items;
            DataRowView dataRowView = itemCollection.CurrentItem as DataRowView;
            DataTable dataTable = dataRowView.DataView.Table;

        }
    }

private void MakeGridviewColumns(DataTable table)
    {
        this.ModelerListView.ItemsSource = table.DefaultView;

        GridView gv = new GridView();
        this.ModelerListView.View = gv;

        // add the date column to gridview
        GridViewColumn dateColumn = new GridViewColumn();
        dateColumn.Header = "Date";
        gv.Columns.Add(dateColumn);
        dateColumn.DisplayMemberBinding = new Binding("Date");

        foreach (DataColumn dataColumn in table.Columns)
        {
            if (dataColumn.ColumnName == "Date")
                continue;

            GridViewColumn gvc = new GridViewColumn();
            gvc.Header = dataColumn.ColumnName;
            DataTemplate dt = new DataTemplate();
            FrameworkElementFactory txtBoxElement = new FrameworkElementFactory(typeof(TextBox));
            Binding bind = new Binding();
            bind.Path = new PropertyPath("Text");
            bind.Mode = BindingMode.TwoWay;
            txtBoxElement.SetBinding(TextBox.TextProperty, bind);
            txtBoxElement.SetValue(TextBox.TextProperty, "test");

            dt.VisualTree = txtBoxElement;
            gvc.CellTemplate = dt;

            gv.Columns.Add(gvc);
        }
    }

不要在WPF的过程代码中创建或操作UI元素。这就是XAML的用途。创建一个适当的视图模型,并使用
ItemsControl
。如果列的数量及其标题是由运行时生成的多个列表决定的,那么可以这样做吗?我宁愿使用
DataGrid AutoGenerateColumns=“True”
,但我指的是StackPanel问题,而不是ListView。