2014-10-26 76 views
2

我正在使用DataGrid並將ItemSource綁定到字符串列表。 問題是排序不起作用。 標題已啓用並且可以單擊,但數據未排序。使用DataGridTemplateColumn排序Datagrid

<DataGrid ItemsSource="{Binding CollectionNames}" SelectedItem="{Binding CurrentName}" SelectionUnit="FullRow" CanUserAddRows="False" AutoGenerateColumns="False" SelectionMode="Single" > 
       <DataGrid.Columns> 
        <DataGridTemplateColumn Width="400" CanUserSort="True" SortMemberPath="Name"> 
         <DataGridTemplateColumn.HeaderTemplate> 
          <DataTemplate> 
           <TextBlock Text="Name" Foreground="#FF40A4E0" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock> 
          </DataTemplate> 
         </DataGridTemplateColumn.HeaderTemplate> 
         <DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <ContentControl> 
            <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Text="{Binding}"/> 
           </ContentControl> 
          </DataTemplate> 
         </DataGridTemplateColumn.CellTemplate> 
        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
       <DataGrid.CellStyle> 
        <Style TargetType="DataGridCell"> 
         <Setter Property="BorderThickness" Value="0"/> 
        </Style> 
       </DataGrid.CellStyle> 
      </DataGrid> 

我認爲這個問題是SortMemberPath =「名稱」但我不知道把,而不是「名」是什麼

+0

您是否嘗試過沒有成員路徑的排序?該字段保留給您打算排序的屬性名稱。由於它只是一個簡單的字符串集合,你不會有一個。 – Xcalibur37 2014-10-26 16:56:46

回答

3

只要你可以設置SortMemberPath="."。當您將綁定的Path設置爲"."時,這意味着整個項目將被綁定,在這種情況下,整個項目將用作分揀機的輸入值。

相關問題