Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中将行动态添加到gridview_C#_Wpf_Xaml_Datagrid - Fatal编程技术网

C# 在WPF中将行动态添加到gridview

C# 在WPF中将行动态添加到gridview,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,请帮我输入以下代码,我想把用户输入的一行添加到gridview中。 我可以添加一行,但它是空的!!请提供帮助。它在windows窗体中工作,但不在WPF中工作 private void button1_Click(object sender, RoutedEventArgs e) { GetGridView(); } private void GetGridView() { string[] r

请帮我输入以下代码,我想把用户输入的一行添加到gridview中。 我可以添加一行,但它是空的!!请提供帮助。它在windows窗体中工作,但不在WPF中工作

private void button1_Click(object sender, RoutedEventArgs e)
        {
            GetGridView();
        }
        private void GetGridView()
        {

      string[] row0 = {textBox1.Text,"Beatles" };

            dataGrid1.Items.Add(row0); 
            dataGrid1.Columns[0].DisplayIndex = 0;
            dataGrid1.Columns[1].DisplayIndex = 1;

     }
////////////// 当然可以,给你

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="964">
    <Grid>
        <DataGrid AutoGenerateColumns="False" Height="274" HorizontalAlignment="Left" Margin="509,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="239" DataContext="{Binding}" ItemsSource="{Binding}" ItemStringFormat="{Binding}" SelectedIndex="-1" SelectionChanged="dataGrid1_SelectionChanged">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Header1" />
            <DataGridTextColumn Header="Header" />
        </DataGrid.Columns>
    </DataGrid>
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" TextChanged="textBox1_TextChanged" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,187,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,66,0,0" Name="textBox4" VerticalAlignment="Top" Width="120" />
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="414,231,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>


编辑:您绑定了DataGrid的ItemsSource,无法将项目添加到网格本身,而在这种情况下,请将项目添加到绑定集合(这是我最初建议的)


我不建议你做那样的事。在WPF中,您应该添加到数据中,这样您可以更改源集合,网格将自动更新,这比使用任何方法(如
DataGrid.Items)都要简单。添加
,它接受
object
类型的输入

e、 g.
Xaml:


代码:

private observetecollection gridData=new observetecollection();
公共可观测收集网格数据
{
获取{return gridData;}
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
添加(新员工(TB.Text,“披头士?”);
}

请添加Xaml或DataGrid的其他定义代码,可能会在那里发现错误?非常感谢您的帮助。我现在处理的原来的问题其实是不同的,我完全搞不清楚如何去实施,所以我只是想看看我是否能在gridView中显示用户数据。你能给我建议一个更好的方法吗。这是我的问题。我必须在visual Studio中开发一个类似于Turbo Tax软件的化学分析工具。这个工具问用户一些关于产品化学成分的问题,以及运行期间的一些生产数据。根据用户输入的值,它在后端进行一些计算(一些大型计算),并打印/PDF一份报告(以表格/图表的形式)软件使用:Visual Studio 2010,C#根据我的在线搜索,我可以使用iTextSharp,但我不能为此编写代码。这听起来太笼统了,至少需要分为几个不同的问题,每个问题都需要具体说明问题所在,等等。
    <DataGrid ItemsSource="{Binding GridData}" Name="DGrid"/>
    <TextBox Name="TB" Width="100"/>
    <Button Content="Add" Click="Button_Click"/>
    private ObservableCollection<Employee> gridData = new ObservableCollection<Employee>();
    public ObservableCollection<Employee> GridData
    {
        get { return gridData; }
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        GridData.Add(new Employee(TB.Text, "Beatles?"));
    }