2

我最近正在开发一个使用 WPF 工具包(和扩展工具包)中的数据网格的 WPF 应用程序

我正在使用 datagridtemplatecolumn,因为我在某些用户的某些值上显示了工具提示。其他列是 datagridtextcolumns。

我可以通过在状态上添加 sortmemberpath 来对状态进行排序,但状态是一个数字 (1,2,3,4,5..),我将这些数字转换为另一列的名称。如果我按这个 sortmemberpath 排序,我首先得到 1,然后是 2,然后是 3,等等,但我想对转换后的值按字母顺序排序。

<Toolkit:DataGridTemplateColumn x:Name="dgtcStatus" Header="Status" SortMemberPath="Status_W52" Width="*">
  <Toolkit:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <TextBlock x:Name="Status" Text="{Binding Path=Status_W52, Converter={StaticResource StatusConverter}}">
        <TextBlock.ToolTip>
          <ToolTip Visibility="{Binding Path=Status_W52, Converter={StaticResource VisibilityConverter}}">
            <TextBlock Text="{Binding Path=Discription_W52, Converter={StaticResource DiscriptionConverter}}"/>
          </ToolTip>
        </TextBlock.ToolTip>
      </TextBlock>
    </DataTemplate>
  </Toolkit:DataGridTemplateColumn.CellTemplate>
</Toolkit:DataGridTemplateColumn>

有人有想法吗?

4

1 回答 1

1

您可以将 Status_W52 从 int 提升为更复杂的类型吗?

public Status_W52
{
   int NumericValue {get;set;}
   string Name {get;set;}
}

您的 Converter 将采用 Status_W52 的完整实例,通过“NumericValue”解析,返回您的 int 进行排序,但也可以更新传递的 ref 的“Name”属性,稍后您可以在该属性上进行排序..

于 2012-04-05T15:37:17.150 回答