2015-05-26 6 views
0

Пожалуйста, помогите устранить проблему ниже. У меня есть COMBOBOX внутри ListBox элемента DataTemplate, так что я могу загрузить несколько выпадающий, но такой же 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 с помощью ObservableCollection собственности. В методе Initialize я делаю для метода loop для получения нескольких элементов. Сценарий проблемы: выберите элемент из раскрывающегося списка1 -> затем выберите элемент из выпадающего списка2 -> Снова нажмите dropdown1, Now dropdown1 itemssource пуст.

ответ

0

У вас нет привязки к объекту SelectedItem (или SelectedValue) ComboBox. Поэтому значение не может быть сохранено (или восстановлено).

Вам нужно добавить свойство в своем классе, который действует как DataContext держать выбранный элемент в ComboBox, например:

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

В качестве побочного записки, имеющей как IsEditable и IsReadOnly свойства можно на вкладке ComboBox набор true довольно ограничительный. Вы уверены, что это намеченное поведение?

+0

Спасибо за ваш ответ, но я хотел сказать, что после возврата к dropdown1 (Combobox), когда я нажимаю кнопку со стрелкой вниз, он не перечисляет значения, т. Е. В combobox нет элементов. – user2478122

+0

Может кто-нибудь мне помочь? – user2478122

+0

Каково ваше намерение? Мне кажется странным иметь привязку 'TwoWay' в свойстве' ItemsSource' 'ComboBox', так как невозможно отредактировать коллекцию таким образом. – Kryptos

Смежные вопросы