【发布时间】:2013-02-05 17:09:57
【问题描述】:
我正在尝试对一个类进行单元测试,而该类使用 XamDataGrid。
我的问题是我的代码应该从 XamDataGrid 触发 Sorted 或 Sorting 事件,但它没有:我错过了什么?
这里我是如何创建网格的:
public static class XamDataGridObjectMother
{
public static XamDataGrid CreateGrid(params string[] columns)
{
var grid = new XamDataGrid();
var layout = new FieldLayout();
grid.FieldLayouts.Add(layout);
int i = 0;
foreach (var column in columns)
{
var field = new Field(column, typeof(string), column+" Label");
field.Column = i;
field.Width = new FieldLength(100);
field.Name = column;
layout.Fields.Add(field);
i++;
}
var data = new List<XamDataGridFakeItem>();
data.Add(new XamDataGridFakeItem("P1", "A1"));
data.Add(new XamDataGridFakeItem("P2", "A1"));
data.Add(new XamDataGridFakeItem("P3", "A1"));
data.Add(new XamDataGridFakeItem("P4", "A2"));
data.Add(new XamDataGridFakeItem("P5", "A2"));
data.Add(new XamDataGridFakeItem("P6", "A2"));
foreach (var xamDataGridFakeItem in data)
{
grid.DataItems.Add(xamDataGridFakeItem);
}
return grid;
}
public class XamDataGridFakeItem
{
public XamDataGridFakeItem(string portfolio, string area)
{
Portfolio = portfolio;
Area = area;
}
public string Portfolio { get; set; }
public string Area { get; set; }
}
}
这是我的单元测试的一部分,我以编程方式向网格添加排序,并且它应该引发排序/排序事件(可能两者):
var sortDescription = new FieldSortDescription("Portfolio", ListSortDirection.Descending, false);
_dataGrid.FieldLayouts[0].SortedFields.Add(sortDescription); // That should trigger the event(s)!
当然 _dataGrid 是在其他地方初始化的,上面显示了我的对象母类。
所以我的问题如果还不是很明显,是我添加一个排序字段应该触发一个排序/排序事件(它应该对网格进行排序),但它没有,我可以'找不到任何方法(以编程方式)强制它对网格进行排序并触发这些事件。
我错过了什么?
【问题讨论】:
标签: c# wpf unit-testing infragistics xamdatagrid