2011-03-24 2 views
1

다음과 같은 클래스가 있습니다.WPF의 클래스 객체 반환 목록

namespace WpfApplication2 
{ 
    class TaskItem 
    { 
     private string name; 
     private string item; 
     private string description; 
     private int priority; 
     public string Name 
     { 
      get 
      { return name; } 
      set 
      { this.name = value; } 
     } 

     public string Item 
     { 
      get 
      { 
       return item; 
      } 
      set 
      { 
       this.item = value; 
      } 
     } 
     public string Description 
     { 
      get 
      { 
       return String.Format("{0} {1}",name,item); 
      } 
     } 
     public int Priority 
     { 
      get 
      { 
       return priority; 
      } 
      set 
      { 
       this.priority = value; 
      } 
     } 

     public TaskItem() 
     { 


     } 

    } 
} 

다음과 같이이 클래스 개체의 목록을 내 wpf 응용 프로그램에 반환하고 싶습니다.

<WpfApplication2:TaskItem x:Key="taskItem"/> 

그 후 이것을 ListBox에 바인딩합니다. 이 클래스 객체 목록을 어떻게 반환 할 수 있습니까? 제발 조언. 감사.

+0

당신이하려는 일에 대한 자세한 정보는 기술적으로 작동하는 것보다는 최종 목표를 충족시키는 대답을 제공하는 데 도움이 될 것입니다. 하지만 아직 당신을 위해 대답을했습니다 :) – Gishu

답변

1

귀하의 XAML 선언은 하나의 TaskItem하지 모음입니다. ListBox의 ItemsSource에 바인딩하려면 컬렉션이 필요합니다. ObservableCollection을 사용하는 xaml 전용 솔루션의 제한 사항에 대해서는 msdn의 참고 사항을 참조하십시오. ListBox에 바인딩하는 코드로 목록을 만들거나 ObservableCollection에서 상속 한 클래스를 만든 다음 xaml에 대신 해당 클래스의 인스턴스를 만들 수 있습니다.

+0

사실, 나는 두 개의 데이터 템플릿을 만들고 TemplateSelector를 사용하여 템플릿을 선택하려고합니다. – TNA

+0

@David, TemplateSelector가 기본 컬렉션의 각 항목에 적용되므로 어떤 시점에서 항목 컬렉션으로 작업해야합니다. –

+0

예,이 msdn 링크는 제가 찾고있는 것입니다. 고마워요! – TNA

0

List<TaskItems>을 만들고 이것을 DataContext로 설정하려고 했습니까?

0

기술적으로 가능합니다. Observable 컬렉션을 List로 바꾸고 my : Person을 사용자 정의 클래스로 바꿉니다. 은 참조 : Generics support was added recently to XAML

<Window> 
    <Window.DataContext> 
     <ObservableCollection x:TypeArguments="my:Person"> 
      <my:Person FirstName="Tom" LastName="Holiday" /> 
      <my:Person FirstName="Joan" LastName="Holiday" /> 
     </ObservableCollection> 
    </Window.DataContext> 
    … 
</Window>