【问题标题】:How to get values from DataView?如何从 DataView 中获取值?
【发布时间】:2016-06-26 15:22:56
【问题描述】:

当用户单击 TreeView 中的元素时,会触发此功能:

  private void treeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {
        Vozlisce v = (Vozlisce)treeView.SelectedItem;      
        v.tabela.pretvoriListVDataTable(); 
        seznam.ItemsSource = v.tabela.dt.DefaultView; 
    }

它将元素从 dt 类型为 ObservableCollection&lt;Vozlisce&gt; 复制到具有 xaml 的自定义数据网格:

 <DataGrid x:Name="seznam" Margin="516,64,131.2,35.4" ItemsSource="{Binding DataSource}"  AlternatingRowBackground="Gainsboro"  AlternationCount="2" AutoGenerateColumns="False" >
        <DataGrid.Columns>
            <DataGridTemplateColumn  Header="name" IsReadOnly="True">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBox Text="{Binding ime}"/>

                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

            <DataGridTemplateColumn  Header="value" >
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBox Text="{Binding utez}"/>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>

    </DataGrid>

seznam.ItemsSource = v.tabela.dt.DefaultView;

我的问题是当我尝试从DataGrid 获取数据时,当用户单击保存按钮时,它不会从数据网格中获取当前更改的数据,它会复制我在开头使用@987654325 输入的相同数据@

保存按钮功能:

     private void btnShraniUtezi_Click(object sender, RoutedEventArgs e)
    {         
        DataView dataView = (DataView)seznam.ItemsSource;

        DataTable dt = dataView.ToTable();

        //test
        double val = dt.Rows[1].Field<double>("utez");
        MessageBox.Show(val.ToString());

    }

如何从 DataGrid 获取当前更改的数据? 我正在使用 WPF。

【问题讨论】:

    标签: c# wpf data-binding datagrid dataview


    【解决方案1】:

    您在描述中声明这一行“seznam.ItemsSource = v.tabela.dt.DefaultView;” - 您是在某些代码后面或视图模型设置中这样做吗?如果是这样,那么您将破坏与您在 xaml 中声明的属性“DataSource”的绑定。这是你的本意吗?

    您对 ime 和 utez 的绑定是双向的,因此任何写入数据网格中这些位置的尝试都应该可以通过在视图模型中针对该属性放置一个断点来捕获,并且您可能能够更好地了解发生了什么,或者说没有发生什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2018-07-01
      • 2011-08-28
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多