2015-05-26 100 views
0

請幫助解決以下問題。 我有組合框列表框項的DataTemplate裏,這樣我可以使用的ObservableCollection財產加載多個組合框,但相同的ItemSourcewpf Combobox Itemssource不能綁定在Listbox數據模板

<StackPanel> 
    <ListBox Width="400" Name="lstFiles" ItemsSource="{Binding}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     <Grid Name="dataGrid"> 
      <Grid.RowDefinitions> 
      <RowDefinition/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
      </Grid.ColumnDefinitions> 
      <TextBox Name="dragFileName" 
        Margin="5,0,0,0" 
        Text="{Binding fileName, UpdateSourceTrigger=Default}" /> 
      <ComboBox Grid.Row="0" 
        Grid.Column="1" 
        Margin="5,0,0,0" 
        Name="cboDragDocType" 
        ItemsSource="{Binding dragDocType, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" 
        Text="{Binding dragDocTypeText}" 
        IsEditable="True" 
        IsReadOnly="True" /> 
      <Button Name="dragDelBtn" 
        Grid.Column="2" 
        Height="20">X</Button> 
     </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 
</StackPanel> 

數據適用於ComboBox加載。在Initialize方法中,我爲循環方法獲取多個項目。 問題場景:從下拉列表中選擇項目1 - >然後從下拉列表中選擇項目2 - >再次單擊下拉列表1,現在dropdown1 itemssource爲空。

回答

0

您沒有對ComboBoxSelectedItem(或SelectedValue)屬性的綁定。因此該值不能被保存(或檢索)。

您需要添加在你的類,它充當一個屬性作爲在DataContext舉行ComboBox的選擇的項目,例如:

<ComboBox Grid.Row="0" 
      ... 
      SelectedItem="{Binding Path=SelectedDragDocType, UpdateSourceTrigger=LostFocus}" /> 

爲對兩個IsEditableIsReadOnly性能側面說明ComboBox設置爲true是相當嚴格的。你確定這是預期的行爲嗎?

+0

感謝您的回覆,但我的意思是說,當我點擊下拉箭頭按鈕時,回滾到dropdown1(Combobox)後,它不會列出值,即組合框中沒有項目。 – user2478122

+0

有人可以幫我嗎? – user2478122

+0

你的預期行爲究竟是什麼?我發現奇怪的是在ComboBox的ItemsSource屬性上有一個'TwoWay'綁定,因爲不可能通過這種方式編輯集合。 – Kryptos