2009-08-01 68 views
0

我有一個Listbox和應用一個DataTemplate這樣如何將Itemsource設置爲DataTemplate中的Comobox動態?

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

  1. 我將如何加載ItemSource這個ComboBox動態基於ListBox選擇的每個項目? Iam是WPF的新成員......請提供寶貴建議。
+0

如果您在此處給對象關係船也會有所幫助 – 2009-08-01 22:34:33

回答

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

現在你combocbox總是具有相同的ItemsSource作爲父列表框。

0

一種方法是將ComboBox的ItemsSource綁定到ListBox的SelectedValue屬性。爲此,ListBox需要綁定到包含ComboBox將綁定到的項目列表的項目集合。

<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" 
    /> 

在這個例子中,我創建的代碼公共財產暴露包含詳細的收集對象的列表窗口的後面。

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; } 
} 
相關問題