Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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中使DataGrid列标题可排序#_Wpf_Datagrid_Header_Jquery Ui Sortable - Fatal编程技术网

使用C在WPF中使DataGrid列标题可排序#

使用C在WPF中使DataGrid列标题可排序#,wpf,datagrid,header,jquery-ui-sortable,Wpf,Datagrid,Header,Jquery Ui Sortable,我在VisualStudio2008中使用C#,并且已经安装了WPF工具包。我在testtest.xaml中创建了一个数据网格。ID和Parts$列可以通过单击各自的列标题对DataGrid进行排序。但是,列标题“完成日期”不具有该功能。我使用标记“DataGridTemplateColumn”来格式化此列的日期。如何对列标题Complete Date进行编程,以便单击Complete Date列标题并对该列进行排序。如果单击该列,不仅不会显示箭头,而且列标题也不“可单击”。 多谢各位 任务

我在VisualStudio2008中使用C#,并且已经安装了WPF工具包。我在testtest.xaml中创建了一个数据网格。ID和Parts$列可以通过单击各自的列标题对DataGrid进行排序。但是,列标题“完成日期”不具有该功能。我使用标记“DataGridTemplateColumn”来格式化此列的日期。如何对列标题Complete Date进行编程,以便单击Complete Date列标题并对该列进行排序。如果单击该列,不仅不会显示箭头,而且列标题也不“可单击”。 多谢各位

任务

在您的
DataGridTemplate列中
将SortMemberPath设置为“”。如果将其设置为项目的实际属性(例如CompleteDate),则应该能够进行排序。您还可以对所选列设置
CanUserSort=“true”
CanUserSort=“false”

SortMemberPath在用户尝试排序时提供要排序的属性。如果未设置,则网格不知道如何对该列进行排序(它不使用列中的文本)


如果列绑定到属性,是否也可以?怎么做?
    <Label Height="22" HorizontalAlignment="Left" Margin="10,45,0,0" Name="label1" VerticalAlignment="Top" Width="41">Task</Label>
    <my:DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" Margin="140,83,67,28" Name="dataGrid1" GridLinesVisibility="Vertical" IsReadOnly="True">
        <my:DataGrid.Columns>
            <my:DataGridTextColumn    Binding="{Binding Path=[ID]}" Header="ID" />
            <my:DataGridTextColumn Binding="{Binding Path=p}" Header="Parts $" />
            <my:DataGridTemplateColumn  SortMemberPath="" Header="Complete Date">
                <my:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock>
                            <TextBlock.Text>
                                <Binding Path="CompleteDate" ConverterCulture="en-GB" StringFormat="{}{0:MM/dd/yyyy}"/>
                            </TextBlock.Text>
                        </TextBlock>
                    </DataTemplate>
                </my:DataGridTemplateColumn.CellTemplate>
            </my:DataGridTemplateColumn>
        </my:DataGrid.Columns>
    </my:DataGrid>
</Grid>
            <my:DataGridTemplateColumn  SortMemberPath="CompleteDate" Header="Complete Date" CanUserSort="true">
            <my:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock>
                            <TextBlock.Text>
                                <Binding Path="CompleteDate" ConverterCulture="en-GB" StringFormat="{}{0:MM/dd/yyyy}"/>
                            </TextBlock.Text>
                        </TextBlock>
                    </DataTemplate>
                </my:DataGridTemplateColumn.CellTemplate>
            </my:DataGridTemplateColumn>