Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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数据网格绑定和列显示_C#_Wpf - Fatal编程技术网

C# WPF数据网格绑定和列显示

C# WPF数据网格绑定和列显示,c#,wpf,C#,Wpf,我有datatable作为DataGrid的项源,这个datatable有很多列。是否可以在不创建新表的情况下显示几列而不是全部列?是的,非常喜欢。如果表结构和列名保持不变,则在Datagrid XAML中设置AutoGenerateColums=False并手动创建所有列 <dg:DataGrid Name="mydg" ItemsSource="{Binding Data}" AutoGenerateColumns="False"> <dg:DataGrid.Column

我有datatable作为DataGrid的项源,这个datatable有很多列。是否可以在不创建新表的情况下显示几列而不是全部列?

是的,非常喜欢。如果表结构和列名保持不变,则在Datagrid XAML中设置AutoGenerateColums=False并手动创建所有列

<dg:DataGrid Name="mydg" ItemsSource="{Binding Data}" AutoGenerateColumns="False">
 <dg:DataGrid.Columns>
  <dg:DataGridTextColumn Header="Col 0" Binding="{Binding FirstColumnName}" />
  <dg:DataGridTextColumn Header="Col 1" Binding="{Binding SecondColumnName}" />
 </dg:DataGrid.Columns>
</dg:DataGrid>

现在,当DataTable包含列
FirstColumnName
SecondColumnName
时,它们将被数据绑定到Datagrid。

是的。只需标记AutoGenerateColumns=False并手动定义列即可。您可以使用普通文本绑定列、复选框列、自定义XAML模板列等,如中所示


此外,您还可以处理事件,并为不希望显示的列设置=true。这样,您就不必手动定义要显示的列。

为什么会有
dg:
前缀…,这是必须的吗?
mydg.ItemSource = Data.DefaultView;
<DataGrid ItemsSource="{Binding DataSource}" AutoGenerateColumns="False" >
    <DataGrid.Columns>
    <DataGridTextColumn Header="Simple Value"
                      Binding="{Binding SimpleValue}" Width="*" />
     <DataGridTemplateColumn Width="*" Header="Complex Value">
        <DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
            <StackPanel>
               <TextBox Text="{Binding ComplexValue}"/>
               <TextBox Text="{Binding ComplexValue2}"/>
            </StackPanel>
          </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
      </DataGridTemplateColumn>
    </DataGrid.Columns>
  </DataGrid>