我想知道是否可以使用代码隐藏的FilterDescriptor控件?
在我的表单的页面加载中,我在后面的代码中设置网格的数据源,而不是使用DomainDataSource控件,如:
TestDomainContext context = new TestDomainContext();
dataGridEmployees.ItemsSource = context.EmployeePositions;
context.Load(context.GetEmployeesWithPositionQuery());
我的页面上有一个文本框,用户可以输入该文本框来过滤员工位置。
现在可以在后面的代码中将FilterDescriptor添加到DataGrid的源代码吗?或者我是否需要手动过滤context.GetEmployeesWithPositionQuery的结果,例如在过滤器TextBox的KeyUp事件上?
答案 0 :(得分:2)
它对我有用,如下所示。
您可以添加一个DomainDataSource,但可以从后面的代码中控制它,而不是在xaml中声明:
DomainDataSource testDDS.DomainContext = context;
testDDS.QueryName = "GetEmployeesWithPositionQuery";
testDDS.Load;
然后,当我在Set FilterDescriptor in code - C# Silverlight 4 WCF中阅读时,您可以在后面的代码中创建一个FilterDescriptor并将其添加到您的DDS中:
FilterDescriptor testFilter = new FilterDescriptor() { PropertyPath = "Name",
Operator = FilterOperator.Contains };
Binding nameBinding = new Binding("Text") { ElementName = "txtFilterName" };
BindingOperations.SetBinding(testFilter, FilterDescriptor.ValueProperty, nameBinding);
testDDS.FilterDescriptors.Add(testFilter);
希望这有帮助,
倒装