让我直说吧。我有一个带有几个设置列的 DataGrid,如下所示:
<ctrl:DataGridWithFooter
FooterRowsCount="1"
x:Name="MyGrid"
CanUserDeleteRows="False"
CanUserSortColumns="True"
AutoGenerateColumns="False"
ItemsSource="{Binding Path=Model, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding Path=Idle}">
<DataGrid.Columns>
<DataGridTextColumn Header="Level"
Binding="{Binding Path=Name, Mode=OneWay}" />
<!--Snip-->
</ctrl:DataGridWithFooter>
以及您所期望的模型。但是,当应用程序运行时,我会在模型的列表中添加反映元素的新列,所以我得到一个绑定表达式,如
<DataGridTextColumn Binding="{Binding Path=Attributes[0]}" />
或类似的东西。单独显示和排序很好,但我遇到了一个问题,我需要强制将我的总数排到底部,我最终需要使用我在网上找到的一些代码才能使其正常工作(可在此处获得, 像宣传的那样工作)。但是,我发现他在这个新的自定义 DataGrid 类中的排序类因我的列表元素绑定而崩溃。我的问题是,我将如何修改这个构造函数
public PropertyAccessor(Type targetType, string property) {
IsList_ = false;
mTargetType = targetType;
mProperty = property;
PropertyInfo propertyInfo =
targetType.GetProperty(mProperty);
mCanRead = propertyInfo.CanRead;
mCanWrite = propertyInfo.CanWrite;
mPropertyType = propertyInfo.PropertyType;
}
为了获得我需要能够反映和排序列表元素的所有信息?