Frage

Ich habe eine Listbox und angewandter eine DataTemplate wie diese

<ListBox>
   <ListBox.ItemTemplate>
<Grid>
 <TextBlock Text="{Binding Path=Name}" Grid.Row=0/>
    <ComoboBox Name="test"
            DisplayMemberPath="Country"
            SelectedValuePath="Country_ID">
</Grid>

  1. Wie werde ich ItemSource dieser ComboBox laden dynamisch basierend auf jedes Element in der ListBox ausgewählt? Iam neu zu WPF ... pls hilft mit Ihren wertvollen Anregungen.
War es hilfreich?

Lösung

<ListBox>
  <ListBox.ItemTemplate>
   <Grid>
     <TextBlock Text="{Binding Path=Name}" Grid.Row=0/>
        <ComoboBox Name="test" 
           DataContent="{Binding RelativeSource={RelativeSource AncestorType=ListBox}}"                 
           ItemsSource="{Binding}"
        DisplayMemberPath="Country"
        SelectedValuePath="Country_ID">
   </Grid>

Jetzt ist Ihre combocbox ist immer die gleiche Itemssource als Mutter listbox.

Andere Tipps

Eine Möglichkeit, dies zu tun, ist die Itemssource Ihres ComboBox an die SelectedValue Eigenschaft der List-Box zu binden. Dazu braucht die ListBox zu arbeiten, um eine Sammlung von Gegenständen gebunden sein, die eine Liste von Elementen enthalten, die die ComboBox binden.

<ListBox
    x:Name="CategoryList"
    ItemsSource="{Binding Path=MasterList, 
        RelativeSource={RelativeSource AncestorType=Window}}"
    DisplayMemberPath="MasterProperty"
    SelectedValuePath="Details"
    />

<ComboBox
    ItemsSource="{Binding Path=SelectedValue, ElementName=CategoryList}"
    DisplayMemberPath="DetailProperty"
    Grid.Row="1"
    />

In diesem Beispiel habe ich hinter dem Fenster eine öffentliche Eigenschaft im Code erstellt, die eine Liste von Objekten, welche die Details der Sammlung aussetzt.

public List<Master> MasterList { get; set; }

public class Master
{
    public string MasterProperty { get; set; }
    public List<Detail> Details { get; set; }
}

public class Detail
{
    public string DetailProperty { get; set; }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top