Использование RIA Services FilterDescriptor из кода позади - PullRequest
2 голосов
/ 08 июня 2010

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

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

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

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

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

1 Ответ

2 голосов
/ 26 июня 2011

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

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

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

Затем, как я прочитал в Установите 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);

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

оборотная

...