2010-06-08 1 views
2

Мне было интересно, можно ли использовать элемент FilterDescriptor из кода позади?Использование служб RIA FilterDescriptor из кода

На странице загрузки моей форме я установил источник данных из сетки в коде позади, не используя контроль DomainDataSource, как:

TestDomainContext context = new TestDomainContext(); 
dataGridEmployees.ItemsSource = context.EmployeePositions; 
context.Load(context.GetEmployeesWithPositionQuery()); 

У меня есть текстовое поле на моей странице, что пользователь может ввести чтобы отфильтровать позицию сотрудника.

Можно ли добавить FilterDescriptor в источник DataGrid в коде позади? Или мне нужно вручную отфильтровать результаты context.GetEmployeesWithPositionQuery, например, в событии KeyUp фильтра TextBox?

ответ

2

Это работало для меня следующим образом.

Вы можете добавить DomainDataSource, но контролировать его из кода позади вместо декларативной в XAML:

DomainDataSource testDDS.DomainContext = context; 
testDDS.QueryName = "GetEmployeesWithPositionQuery"; 
testDDS.Load; 

Тогда, как я прочитал в Set FilterDescriptor in code - C# Silverlight 4 WCF, вы можете создать FilterDescriptor в коде позади и добавить их к ДДС :

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); 

Надеется, что это помогает,

флипа

+0

, где я определил в коде позади, я имею в виду, как этот метод вызывается – GANI