Arhn - архитектура программирования

Можем ли мы использовать предложение Where в привязке WPF в коде позади?

У меня есть сценарий, в котором я хочу создать объект Binding в коде, а затем подключить его к столбцу datagrid. Что-то вроде этого:

int i = 5; // Will get this value from some other object

Binding b = new Binding("Customers.where(c => c.CustomerId == " + i + ").ToList()[0].OrderValue");  // how to make this work ?

telerikGridView.Columns.Add(
    new Telerik.Windows.Controls.GridViewDataColumn
        {
            Header = "Customer",
            DataMemberBinding = b
        }
    );

Я видел еще один сообщение, где предлагалось Я могу использовать конвертер или создать собственный класс привязки. Но конвертер тоже не работает.

Я пропустил что-то очень тривиальное здесь?

15.08.2015

  • создайте свойство с наблюдаемой коллекцией, которая будет содержать Customers.where(c =› c.CustomerId == + i + ).ToList()[0].OrderValue); затем привяжите его к модели представления, которая содержит это свойство. используйте MVVM для WPF, а не код позади 15.08.2015
  • Ну, я не могу этого сделать на самом деле. Это часть требования, в котором я могу добавить любое количество клиентов в класс, который здесь является DataContext. 15.08.2015
  • Я не понимаю, почему ты не можешь. если вы хотите обмениваться данными между классами, предоставьте им общий интерфейс. 15.08.2015
  • Таким образом, эта коллекция Customer фактически содержит клиентов, которых я могу продолжать добавлять в класс (который является datacontext), и это количество клиентов, которых я могу добавить, не определено. 15.08.2015
  • Итак, уведомите/обновите классы о разном количестве добавленных элементов. посмотрите здесь en.wikipedia.org/wiki/Observer_pattern 15.08.2015
  • Проблема здесь в сетке данных, некоторые столбцы сетки данных являются статическими, тогда как я хочу добавить некоторые столбцы в сетку по требованию. Итак, я добавлю клиента, и он должен появиться в новом столбце. Я надеюсь, что это сделает это более понятным 15.08.2015
  • Вы все еще можете это сделать. создайте правильный класс для вашей модели представления. столбцы, которые являются статическими, инициализируют их в ctor модели представления, а остальные вы добавите в наблюдаемую коллекцию. таким образом у вас будут статические столбцы и динамические столбцы. 15.08.2015
  • Вы можете привязаться к коллекции и добавить конвертер, чтобы использовать в ней предложение Where. Если это может помочь, пожалуйста, дайте мне знать, и мы обсудим это. 15.08.2015
  • @VMaleev Я пытался использовать конвертер, но каким-то образом ячейка сетки данных не редактируется после применения конвертера, я не могу понять, почему это так. 17.08.2015
  • Это правильно, вы не сможете его отредактировать, потому что вам нужно будет реализовать метод ConvertBack. Я еще раз прочитал ваш пост и думаю, что было бы лучше реализовать для вас правильную ViewModel. Является ли фильтр идентификаторов настраиваемым или жестко запрограммированным? 17.08.2015

Ответы:


1

Создайте коллекции Observable в своем классе, затем создайте событие изменения свойства, затем в этом событии манипулируйте своими данными (предложение where), а затем привяжите его.

var coll = viewModel.GetPropertyValue("Customers") as ObservableCollection<Customers>;
coll += CustomerPropertychange_Event;
16.08.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..