0

这是我的代码,当我运行它时,输出是什么。我真的在这一个损失。任何帮助,将不胜感激。我需要将observablecollection添加到observablecollection。

VALIDATIONITEM CLASS:

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(需要实现到验证项目类)

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; 
      } 


    } 
} 

VALIDATIONUSERCONTROL 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> 

OUTPUT:

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

回答

0

item属性应该是类型ObservableCollection<ValidationMessages> 的。如果没有,那么你应该先遍历通过item收集和分配之前生成验证消息的字符串Message.item。

0

你的输出是好的,因为你写道:

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

但我的输出需要包含我在验证消息类中设置的消息。相反,它包含:System.Collections.ObjectModel.ObservableCollection'1 [ValidationWPF.DataSources.ValidationMessages] – JLott

相关问题