Визуализация пользовательского интерфейса с использованием IValueConverter с использованием только кода C #

Я с # и5-Silverlight начинающий.

Сначала я должен был создать объект путем десериализации строки XML. Я сделал это успешно, но теперь мой следующий шаг - создать графический интерфейс с использованием элементов объекта. У меня есть идея, что я должен использовать "IValueConverter"для этого. Но как это, я не знаю.

Мой класс Program, который содержит объект, выглядит так:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Runtime.Serialization.Json;
using System.Runtime;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.IO;
using System.Collections.Generic;
using System.Diagnostics;
using System.Xml;
using System.Collections;
namespace Model.XML
{
    public class ProgramControl
    {
        public static void Main()
        {
            string xmlstring = @"<?xml version='1.0' encoding='utf-8' ?> 
                       <parameter>  
                       <name>max_amount</name>
                       <label>Max Amount</label>
                       <unit>Millions</unit>
                       <component>
                       <type>Combo</type>
                       <attributes>
                       <type>Integer</type>
                       <displayed>4</displayed>
                       <selected>0</selected>
                       <items>
                       <item>5</item>
                       <item>10</item>
                       <item>20</item>
                       <item>50</item>
                       </items>
                       </attributes>
                       </component >
                       </parameter>";    

            XmlSerializer deserializer = new XmlSerializer(typeof(Parameter));
            XmlReader reader = XmlReader.Create(new StringReader(xmlstring));

            Parameter parameter = (Parameter)deserializer.Deserialize(reader);


            foreach (var item in parameter.Component.Attributes.Items)
            {
                Debug.WriteLine(item);
            }    

            Debug.WriteLine(parameter.Component.Type);
            Debug.WriteLine(parameter.Name);
            Debug.WriteLine(parameter.Label);
            Debug.WriteLine(parameter.Unit);

        } 
    }
}

Теперь вопрос в том, как я могу создать GUI из объекта, полученного при десериализации (IValueConverter)?

РЕДАКТИРОВАТЬ: Я мало представляю, как этого можно достичь:

Во-первых, в классе, содержащем интерфейс «IValueConverter», мы должны преобразовать (используя функцию Convert ()) объекты (полученные при десериализации) в параметры, а затем передать эти параметры (содержащие здесь поле со списком, созданное в c #) черезreturn к коду xaml, который содержит контейнер для визуализации GUI, который мы только что создали с помощью c #.

А в коде Xaml нам просто нужно создать контейнер, который будет отображать поле со списком и другие метки и текст, который мы создали в коде c # на предыдущем шаге. (Здесь не нужно создавать поле со списком, используя xaml, оно создается в коде c # внутри класса, содержащего интерфейс IValueConverter, который возвращает пользовательский интерфейс).

Например: (Это грубая идея, чтобы вы поняли правильно, может быть какая-то синтетическая ошибка):

Мой класс "MyValueConverter.cs" предположим:

public class MyValueConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType,
                          object parameter, CultureInfo culture) 
    {

        List<parameter> list = value as List<Parameter>;
        List<UIElement> result = new List<UIElement>();

        foreach(parameter p in list)
        {
            UIElement newEle = null;
            if (p.component.type == "Combo")
            {
                newEle = new ComboBox();

            }
            result.add(newEle);
        }
        return result;
        /////////////////////////////////////////////////
        //////////////// and so on ://///////////////////
        /////////////////////////////////////////////////
    }
}

Принимая во внимание, что в файле xaml я должен создать контейнер, который будет отображать пользовательский интерфейс, созданный в c # (класс интерфейса IValueConverter).Таким образом, мы должны выбрать любой контейнер, который должен быть способен отображать поле со списком, метку, текст, все данные, показанные в графическом интерфейсе снимка (conatiner может быть StackPanel, потому что есть более чем одна вещь, которая будет отображаться).

мой код xaml будет просто содержать контейнер как это:

<UserControl x:Class="RenderingTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:this="clr-namespace:RenderingTest.Converters"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <UserControl.Resources>
        <this:MyValueConverter x:Key="ImageConverter"/>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White" Width="Auto" Height="Auto">
        <!-- There should be container here to render the combo box
             created using c# code in "MyValueConverter" class -->
    </Grid>
</UserControl>

Любая помощь в достижении этого, пожалуйста? Пожалуйста, не стесняйтесь спрашивать, если еще не понял.

Ответы на вопрос(1)

Ваш ответ на вопрос