none
请问wpf datagrid 怎样绑定表头的文本 RRS feed

  • 问题

  • <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <local:FontWeightConverter x:Key="FontWeightConverter" />
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="Background" Value="DodgerBlue"/>
                <Setter Property="Foreground" Value="White" />
                <Setter Property="HorizontalContentAlignment" Value="Center" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Grid >
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <TextBox Grid.Row="0"/>
                                <ComboBox Grid.Row="1"/>
                            </Grid>
                            <!--<TextBox Text="{TemplateBinding Converter={StaticResource FontWeightConverter}}"></TextBox>-->
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Window.Resources>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <StackPanel>
                <Button Content="获取选中列" Click="Button_Click"></Button>
                <Button Content="获取选中行" Click="Button_Click_1"></Button>
            </StackPanel>
            <DataGrid Name="datagrid1" Grid.Row="1" SelectionUnit="Cell" >
            </DataGrid>
        </Grid>
    </Window>
    • 已编辑 彭123 2016年6月17日 9:13
    2016年6月17日 9:10

答案

  • datagrid1.ItemsSource = dt.DefaultView;

    这样是不行的,由数据生成表头,要用绑定技术


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 彭123 2016年9月5日 3:52
    2016年6月17日 12:49

全部回复

  • 后台代码

       public MainWindow()
            {
                InitializeComponent();
                DataTable dt = new DataTable();
                dt.Columns.Add("id");
                dt.Columns.Add("value");
                dt.Columns.Add("time");
                Random rd = new Random();
                for (int i = 0; i < 10; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = i;
                    dr[1] = rd.Next();
                    dr[2] = DateTime.Now.AddSeconds(rd.Next());
                    dt.Rows.Add(dr);
                }
                datagrid1.ItemsSource = dt.DefaultView;
            }
            private void Button_Click(object sender, RoutedEventArgs e)
            {
               
                object o = datagrid1.SelectedCells[0].Column.DisplayIndex;
                //MessageBox.Show(datagrid1.CurrentCell.Column.DisplayIndex.ToString());
            }
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
            }

    2016年6月17日 9:11
  • 请问怎样绑定表头的文本到文本框中,我想在界面上用户能够修改表头。
    2016年6月17日 9:14
  • datagrid1.ItemsSource = dt.DefaultView;

    这样是不行的,由数据生成表头,要用绑定技术


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 彭123 2016年9月5日 3:52
    2016年6月17日 12:49