【问题标题】:I need to add an observablecollection to an observablecollection.我需要将 observablecollection 添加到 observablecollection。
【发布时间】:2012-05-23 20:58:38
【问题描述】:

这是我的代码以及运行它时的输出。我真的很茫然。任何帮助将不胜感激。

验证项目类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace ValidationWPF.DataSources
{
   public class ValidationItem : ObservableCollection<ValidationItem>
    {
        public ValidationItem()
        {
            SubItems = new ObservableCollection<ValidationItem>();


        }


        public ObservableCollection<ValidationMessages> Messages
        {
            get;
            set;
        }

        public string item
        {
            get;
            set;
        }

        public IList<ValidationItem> SubItems
        {
            get;
            set;
        }

        public static IList<ValidationItem> GetItems(string name)
        {
            var Validation = new ObservableCollection<ValidationItem>();


            var item = new ValidationItem();
            item.item = "Customer";


            var subItem = new ValidationItem();
            subItem.item = "Name";
            item.SubItems.Add(subItem);

            var Message = new ValidationItem();
            Message.item = new ObservableCollection<ValidationMessages>().ToString();
            subItem.SubItems.Add(Message);





            Validation.Add(item);

            return Validation;

        }
    }
}

VALIDATIONMESSAGES CLASS(需要在Validation Item Class中实现)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace ValidationWPF.DataSources
{
    public class ValidationMessages 
    {
        public ValidationMessages(string Message)
        {
            this.Message = Message;
        }

            public string Message
            {
                get;
                set;
            }


    }
}

验证用户控制 XAML:

<UserControl x:Class="ValidationWPF.ValidationUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:local="clr-namespace:ValidationWPF.DataSources"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>



    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">

        <telerik:RadTreeView x:Name="radTreeView" Margin="8">
            <telerik:RadTreeView.ItemTemplate>

                <HierarchicalDataTemplate ItemsSource="{Binding SubItems}">
                    <TextBlock Text="{Binding item}" />
                </HierarchicalDataTemplate>

            </telerik:RadTreeView.ItemTemplate>
        </telerik:RadTreeView>

    </Grid>
</UserControl>

输出:

Customer
      Name
         Message Below*
    *System.Collections.ObjectModel.ObservableCollection'1[ValidationWPF.DataSources.ValidationMessages]

【问题讨论】:

    标签: wpf xaml observablecollection hierarchicaldatatemplate radtreeview


    【解决方案1】:

    您的item 属性应为ObservableCollection&lt;ValidationMessages&gt; 类型 如果不是,那么您应该首先遍历 item 集合并生成一串验证消息,然后再将其分配给 Message.item。

    【讨论】:

      【解决方案2】:

      你的输出很好,因为你写了:

      Message.item = new ObservableCollection<ValidationMessages>().ToString();
      

      【讨论】:

      • 但是我的输出需要包含我在验证消息类中设置的消息。相反,它包含: System.Collections.ObjectModel.ObservableCollection'1[ValidationWPF.DataSources.ValidationMessages]
      猜你喜欢
      • 2014-10-27
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2011-04-10
      相关资源
      最近更新 更多