Я десериализую XML-файл в класс, а затем пытаюсь отобразить некоторый XAML (хранящийся в свойстве в классе) в ContentControl.WPF: Хранить XAML в свойствах и отображениях в ContentControl
Вот мой XML:
<CallSteps>
<CallStep>
<StepID>20</StepID>
<StepName>Intro</StepName>
<StepXaml>
<![CDATA[<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:uc="clr-namespace:CallTracker.Library.UserControls.BaseUserControls;assembly=CallTracker.Library">
<uc:LabelValueControl Label="TestLabel" Value="356733" />
</StackPanel>]]>
</StepXaml>
</CallStep>
<CallStep>
<StepID>30</StepID>
<StepName>Intro</StepName>
<StepXaml>
<![CDATA[<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:uc="clr-namespace:CallTracker.Library.UserControls.BaseUserControls;assembly=CallTracker.Library">
<uc:LabelValueControl Label="TestLabel2" Value="356738124315" />
</StackPanel>]]>
</StepXaml>
</CallStep>
</CallSteps>
Это правильно десериализует к коллекции CallStep
объектов. Вот что один CallStep
объект выглядит следующим образом:
Как часть моего кода у меня есть CurrentCallStep
, который содержит один CallStep
. Я хотел бы, чтобы отобразить XAML, содержащийся в StepXaml
внутри ContentControl
(или какой-либо другой контейнер), используя что-то вроде:
в VM:
/// <summary>
/// Current call step object
/// </summary>
public CallStep CurrentCallStep
{
get { return _CurrentCallStep; }
set
{
_CurrentCallStep = value;
NotifyPropertyChanged(m => m.CurrentCallStep);
}
}
private CallStep _CurrentCallStep;
в Вид:
<!-- CurrentCallStep contains the XAML for the current call steps to be displayed -->
<ContentControl Content="{Binding CurrentCallStep.StepXaml}"
Background="LightBlue"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
Это, однако, не преобразовывая XAML в XAML, а просто отображая текст:
Как я могу получить текст в CurrentCallStep.StepXaml
для преобразования в XAML?