【问题标题】:Sorting on DataGridTemplateColumn with converter使用转换器对 DataGridTemplateColumn 进行排序
【发布时间】:2012-04-19 07:31:02
【问题描述】:

我最近正在开发一个 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>

有人有想法吗?

【问题讨论】:

    标签: wpf vb.net sorting datagrid gridview-sorting


    【解决方案1】:

    您能否将 Status_W52 从 int 提升为更复杂的类型?

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 2014-12-21
      • 2013-02-04
      • 2013-04-20
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多