2013-03-19 4 views
1

사용자가 원하는 선택 항목을 선택할 수있는 comboBox가 있습니다. comboBox의 선택에 따라 사용자 선택과 관련된 문자열 목록과 함께 listBox를 표시합니다.콤보 상자에서 선택 항목이 변경되면 목록 상자 항목이 동적으로 변경됨

예 : 사용자가 comboBox에서 '동물'을 선택하면 listBox에 'Monkeys, Horses, Pigs'가 표시됩니다.

최소 바인딩 (XAML 기반)으로 단순 바인딩을 만들려고했지만 1 일 동안 사용할 수 없습니다. 미리 감사드립니다!

편집 : 그것은 당신이 제공된 링크에서 Jehof에 의해 답을 확인할 수 있습니다 (단지 XAML 및 모든 데이터를 저장하는 클래스를 사용하는) 다른 방법에 관심 사람들을 위해

안녕하세요. 이것을 달성하는 것은 아주 간단한 방법입니다.

ListBox does not display the binding data

+1

현재 XAML과 코드를 게시 할 수 있습니다. –

답변

2

여기 당신을 위해 무엇을 찾고있는 간단한 예입니다 (얻을 당신은 시작).

먼저 모든 데이터가 포함 된 개체를 만들고이를 ComboBox에 바인딩하고 Comboboxes SelectedItem을 사용하여 ListBox을 채 웁니다.

코드 :

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     Categories.Add(new Category { Name = "Animals", Items = new List<string> { "Dog", "Cat", "Horse" } }); 
     Categories.Add(new Category { Name = "Vehicles", Items = new List<string> { "Car", "Truck", "Boat" } }); 

    } 

    private ObservableCollection<Category> _categories = new ObservableCollection<Category>(); 
    public ObservableCollection<Category> Categories 
    { 
     get { return _categories; } 
     set { _categories = value; } 
    } 
} 

public class Category 
{ 
    public string Name { get; set; } 
    public List<string> Items { get; set; } 
} 

XAML :

<Window x:Class="WpfApplication10.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" Name="UI"> 

     <StackPanel DataContext="{Binding ElementName=UI}"> 
      <ComboBox x:Name="combo" ItemsSource="{Binding Categories}" DisplayMemberPath="Name"/> 
      <ListBox ItemsSource="{Binding SelectedItem.Items, ElementName=combo}"/> 
     </StackPanel> 
</Window> 

결과 : enter image description hereenter image description hereenter image description here

+0

나는 내 데이터를 넣기 위해 코드를 사용하지 않는 경향이 있기 때문에 신속한 응답에 감사드립니다. 모든 데이터를 저장하는 데 사용되는 클래스가 있습니다. 그래서 내가 가진 문제는 데이터 클래스에서 찾은 문자열 목록에 내 listBox 항목을 바인딩하는 것입니다. – Sheep

+1

잘 언급했거나 관련 코드를 게시 한 적이 없기 때문에 내가 원하는대로 만들 수있는 최선의 추측을 만들었습니다. 아마도 다른 사람이 도울 수 있도록 질문에 모든 요구 사항을 추가해야합니다. –

+0

잘 anw 감사합니다, 이것은 게시 된 질문에 대한 해결책입니다. 한 번 찾으면 해결책을 게시 할 것입니다. – Sheep

관련 문제