Во-первых, вам нужно добавить собственное пространство имен XML, которое будет определять пространство имен, в котором определены параметры:
xmlns:properties="clr-namespace:TestSettings.Properties"
Затем в вашем файле XAML обращайтесь к экземпляру настроек по умолчанию, используя следующий синтаксис :
{x:Static properties:Settings.Default}
Итак, вот окончательный код результата:
Источник: WPF - Как привязать элемент управления к свойству, определенному в настройках?
Примечание. Как указано @Daniel и @nabulke, не забудьте установить модификатор доступа вашего файла настроек на Public
и Scope до User
Если честно, я никогда не видел эту функцию (NEWCONTEXTFROMHIERARCHY
), но это то, что мне удалось сделать. Я сделал функцию, которая создает необходимую часть иерархического дерева и объединяет два дополнительных параметра (базовый продукт и продукт). Затем я использовал newcontextfromhierarchy
. Таким образом, функция возвращает весь узел.
create or replace function xml_hier(i_id in varchar2, i_base in varchar2, i_name in varchar2) return xmltype is
v_ret xmltype;
begin
select dbms_xmlgen.getxmltype(dbms_xmlgen.newcontextfromhierarchy('
with t as (
select level lvl, xmlelement("PGR", XMLATTRIBUTES(NAME))
from PRODUCTGROUPS
where id in (select id
from PRODUCTGROUPS
connect by prior PARENTID = ID start with id = '||i_id||')
connect by PARENTID = prior ID
start with parentid is null)
select * from t
union all
select (select max(lvl) + 1 from t), XMLELEMENT("PRO", XMLATTRIBUTES('''||i_base||''' as "name")) from dual
union all
select (select max(lvl) + 2 from t), XMLELEMENT("PRV", XMLATTRIBUTES('''||i_name||''' as "name")) from dual'))
into v_ret
from dual;
return v_ret;
end;
Итак, с созданными вами таблицами я запускаю:
select p.id,
xmlroot(
xmlelement("IMPORT",
xml_hier(g.id, p.baseproduct, p.name))
, version '1.0" encoding="utf-8') as xml
from products p
join productgroups g on p.productgroupid = g.id;
и в результате получаю:
<?xml version="1.0" encoding="utf-8"?>
<IMPORT>
<PGR NAME="Product Group 1">
<PGR NAME="Product Group 1-1">
<PGR NAME="Product Group 1-1-1">
<PRO name="Product X">
<PRV name="Product Variant 1"/>
</PRO>
</PGR>
</PGR>
</PGR>
</IMPORT>
Иерархический запрос сначала работает в обратном направлении, в порядке найти предков. Затем все идет нормально, используя только уже известные id
.
Надеюсь, это поможет:)