Вопрос по c#, treeview, wpf, telerik, user-controls – Попытка построить элемент управления Query Builder в WPF

3

Пожалуйста, потерпите меня на протяжении всего этого вопроса, я старался быть как можно более информативным. Я новичок в программировании WPF. Я в основном пытаюсь построитьЭлемент управления RadDataFilter:

RadDataFilter используется для фильтрации коллекции путем построения выражения запроса. Контрольgenerally используется для получения всех данных из базы данных и последующей фильтрации по ним.

Тем не менее, я пытаюсь использовать его для построения выражения запроса SQLand then Я запрашиваю базу данных, чтобы получить данные. Наша компания имеет лицензию на продукты Telerik, поэтому мне пришлось попробовать и использовать контроль. К сожалению, контроль не является гибким в той степени, в которой я хотел бынастроить Левый Dropdown (RadComboBox).

Поскольку у нас есть несколько элементов, по которым пользователи могут фильтровать, не представляется возможным предоставить им один dropdpwn. Я хотел бы иметь собственный элемент управления вместо раскрывающегося списка.

У меня есть следующее решение этой проблемы:

Extract the Template for that control and override it in my XAML as described here. However, inspite of doing this, I am unable to change the control. I assume it is due to my inadequate knowledge in WPF.

Try to change the Source code for Telerik (We have the license for the code too). However with this approach, we need to keep making changes with every upgrade, which is high maintenance for the team.

Try to build a custom control.

Я ищу третий подход. Если есть простой способ (используя первые 2 подхода) или любое другое решение для достижения этого, пожалуйста, дайте мне знать, и я попробую это.

Чтобы реализовать третий подход, я думаю использовать TreeView с каждым узлом, используя ControlTemplate (содержащий мой Custom Control). Я буду отменятьToString() метод пользовательского элемента управления, который дает мне одно условие запроса. После этого я перебрал бы дочерние элементы корневого узла для построения окончательного выражения запроса.

Однако, как я заметил, нам нужны 2 разных шаблона ControlTemplates (один, который позволяет создавать выражение фильтра, а другой с оператором, аналогичным RadDataFilter). Я не знаю, как установить несколько шаблонов, как это.

Это может показаться простым для некоторых разработчиков, но я действительно новичок в программировании на C # и WPF и мне нужно время и опыт, чтобы освоиться с этим.

Пожалуйста, дайте мне знать, если вы знаете любое другое решение, которое я могу попытаться решить эту проблему. Если вы считаете, что лучше создать пользовательский элемент управления, сообщите мне, как лучше всего это реализовать. Также прокомментируйте мой подход к созданию пользовательского элемента управления.

Спасибо!

Ваш Ответ

1   ответ
1

Я решил это. Взял первый подход:

& quot; Извлеките шаблон для этого элемента управления и переопределите его в моем XAML, как описаноВот.. & Quot;

Похожие вопросы