WPF如何更新隐藏的datagrid中的更改

时间:2016-01-11 15:00:00

标签: c# wpf datagrid

项目如下:
 1- WPF C#项目
 2-链接到MySQL的数据源
 3-隐藏数据网格  4-按钮在datagrid中执行单元格值更改

必需:单击按钮时如何更新数据源?

XAML:     

<Window.Resources>
    <local:hqdDataSet x:Key="hqdDataSet"/>
    <CollectionViewSource x:Key="ayaViewSource" Source="{Binding aya, Source={StaticResource hqdDataSet}}"/>
</Window.Resources>

<Grid DataContext="{StaticResource ayaViewSource}">
    <Button x:Name="FBUTT" Content="Button" HorizontalAlignment="Left" Margin="409,275,0,0" VerticalAlignment="Top" Width="75" Click="FBUTT_Click"/>

    <DataGrid x:Name="DGA" Visibility="Hidden" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Margin="330,10,10,68" RowDetailsVisibilityMode="VisibleWhenSelected">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="ANO" Binding="{Binding AYANO}" Header="AYANO" Width="SizeToHeader"/>
            <DataGridTextColumn x:Name="SID" Binding="{Binding SORID}" Header="SORID" Width="SizeToHeader"/>
            <DataGridTextColumn x:Name="RDF" Binding="{Binding RDQ}" Header="RDQ" Width="SizeToHeader"/>
        </DataGrid.Columns>
    </DataGrid>

</Grid>
</Window>

代码隐藏

namespace Wpf4
{    
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Wpf4.hqdDataSet hqdDataSet = ((Wpf4.hqdDataSet)(this.FindResource("hqdDataSet")));
            Wpf4.hqdDataSetTableAdapters.ayaTableAdapter hqdDataSetayaTableAdapter = new Wpf4.hqdDataSetTableAdapters.ayaTableAdapter();
            hqdDataSetayaTableAdapter.Fill(hqdDataSet.aya);
            System.Windows.Data.CollectionViewSource ayaViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("ayaViewSource")));
            ayaViewSource.View.MoveCurrentToFirst();
        }

        private void FBUTT_Click(object sender, RoutedEventArgs e)
        {
            for (int kw = 0; kw < 100; kw++)
            {               
                DataGridCell PCA = Datagrid.GetCell(DGA, kw, 2);                
                TextBlock TPCA = PCA.Content as TextBlock;
                if (int.Parse(TPCA.Text) == 1)
                {
                    Datagrid.GetCell(DGA, kw, 2).Content = 0;                    
                    return;
                }
            }              
        }
    }
}

0 个答案:

没有答案