0

データを xml にシリアル化する方法、XBMC は私のカスタム クラスです。

private static XBMC LoadXbmcShows(string XMlFile)
{
    XBMC XBMCSShowsList;
    TextReader Reader = new StreamReader(XMlFile);
    XmlSerializer serializer = new XmlSerializer(typeof(XBMC));
    XBMCSShowsList = (XBMC)serializer.Deserialize(Reader);
    Reader.Close();
    return XBMCSShowsList;
 }

XBMC XBMCSList = LoadXbmcShows(_XMLFile);

これは私が作成する方法ですObservableCollection

readonly ObservableCollection<XBMC> myCollection
    = new ObservableCollection<XBMC>()

public ObservableCollection<XBMC> MyCollection
{ get { return myCollection; } }

XBMCSListすべてのデータをコレクションに追加する方法がわかりません。また、何かアイデアがあれば、別の方法で試してみたいと思います。

メイン ウィンドウの分離コード:

namespace MySQlXML
{  
    public partial class MainWindow : Window
    {
        static string _XMLFile = @"C:\Dump\test.xml";

        List<string> ToCopylist = new List<string>();

        readonly ObservableCollection<XBMC> myCollection
            = new ObservableCollection<XBMC>();

        public ObservableCollection<XBMC> MyCollection
        {
            get { return myCollection; }
        }


        public ObservableCollection<XBMC> MyCollection
        {
            get { return myCollection; }
        } 

        XBMC XBMCSList = LoadXbmcShows(_XMLFile);
        MyCollection.Add(XBMCSList);

        public MainWindow()
        {
            InitializeComponent();

            Showlistbox.ItemsSource = XBMCSList.Show;
            //foreach (XBMCShow show in XBMCSList.Show)
            //{
            //    Showlistbox.Items.Add(show.ShowName);

            //}
        }

        private static XBMC LoadXbmcShows(string XMlFile)
        {
            XBMC XBMCSShowsList;

            TextReader Reader = new StreamReader(XMlFile);
            XmlSerializer serializer = new XmlSerializer(typeof(XBMC));
            XBMCSShowsList = (XBMC)serializer.Deserialize(Reader);
            Reader.Close();

            return XBMCSShowsList;
        }
    }
}  
4

1 に答える 1

0

逆シリアル化の結果をリストに追加するにはどうすればよいですか? これは、デシリアライズしてコンストラクターに追加する例です。

private static XBMC LoadXbmcShows(string XMlFile)
{
  XBMC XBMCSShowsList;
  TextReader Reader = new StreamReader(XMlFile);
  XmlSerializer serializer = new XmlSerializer(typeof(XBMC));
  XBMCSShowsList = (XBMC)serializer.Deserialize(Reader);
  Reader.Close();
  return XBMCSShowsList;
}

readonly ObservableCollection<XBMCShow> myCollection = 
  new ObservableCollection<XBMCShow>()

public ObservableCollection<XBMCShow> MyCollection 
{ get { return myCollection; } }

public MainWindow()
{
  InitializeComponent();

  XBMC XBMCSList = LoadXbmcShows(_XMLFile);
  myCollection = new new ObservableCollection<XBMCShow>(XBMCSList.Show);
  Showlistbox.ItemsSource = myCollection;
}

チャットから、XBMC次の定義を取得しました。

public partial class XBMC 
{ 
  private XBMCShow[] showField; 

  [System.Xml.Serialization.XmlElementAttribute("Show")] 
  public XBMCShow[] Show 
  { 
    get { return this.showField; } 
    set { this.showField = value; } 
  } 
}

.. および XAML:

<ListBox x:Name="Showlistbox"> 
  <ListBox.ItemTemplate> 
    <DataTemplate> 
      <TextBlock Text="{Binding ShowName}" /> 
    </DataTemplate> 
  </ListBox.ItemTemplate> 
</ListBox>
于 2013-09-30T09:26:58.317 に答える