Я нахожу внутреннее соединение более интуитивным, потому что я использую его чаще, чем перекрестное соединение:
;with cteAllColumns as (
select col1 as col
from YourTable
union
select col2 as col
from YourTable
)
select c1.col, c2.col
from cteAllColumns c1
join cteAllColumns c2 on 1=1
where c1.col < c2.col
order by c1.col, c2.col
Если я правильно понимаю, вы хотите получить FlowDocument из строки? Вы можете сделать это с помощью XamlReader.Parse
:
string result = XamlWriter.Save(flowDocument);
FlowDocument new_doc = (FlowDocument)XamlReader.Parse(result);
РЕДАКТИРОВАТЬ: Если файл XAML является частью вашего проекта, вы можете пометить его как EmbeddedResource и использовать следующее для его загрузки:
Stream doc_stream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("YourNamespace.YourFile.xaml");
FlowDocument doc = (FlowDocument)XamlReader.Load(doc_stream);