Использование RIA Services FilterDescriptor из исходного кода

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

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

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

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

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


person Fermin    schedule 08.06.2010    source источник


Ответы (1)


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

Вы можете добавить DomainDataSource, но управлять им из кода, а не декларативно в xaml:

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

Затем, как я читал в Set FilterDescriptor в коде - 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);

Надеюсь это поможет,

кувырок

person flip    schedule 26.06.2011
comment
где я определил в коде позади, я имею в виду, как этот метод называется - person GANI; 20.03.2013