我试图让我的列使用 datagridSortMemberPath="COLUMN"
属性进行排序,我得到一个奇怪的排序顺序,如下所示:
看起来该列是根据数字的第一位而不是整个数字进行排序的。我怎样才能解决这个问题?
编辑:
好的,我知道问题出在哪里了。我现在正在使用这个转换器,但仍然没有变化。
public class IntToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is string)
{
string s = (string)value;
int num;
if (int.TryParse(s, out num))
return Int32.Parse(s);
}
return DependencyProperty.UnsetValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
int number = (int)value;
return number.ToString();
}
}
我将此添加到我的 xaml 文件 Windows.Resource 中:
<me:IntToStringConverter x:Key="IntToStringConverter"/>
并在我的数据部分进行了此更改:
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MinRun, Converter={StaticResource IntToStringConverter}}" HorizontalAlignment="Center" />
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
这是 XAML 的 DataGrid 部分。请注意,在所有列中,我首先尝试让“MinRun”列正确排序,然后我将在其他列上使用相同的技术。