2015-08-19 3 views
2

У меня возникают проблемы с обновлением combobox при привязке к списку. Все остальные элементы управления корректно обновляются при внесении изменений. Я пытаюсь удалить элемент из выпадающего списка с помощью кнопки.CollectionViewSource Binding не обновляется при удалении или добавлении элемента

<CollectionViewSource Source="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=statusList}" x:Key="statusList"/> 

.

<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <CheckBox Tag="{Binding ID}" Content="{Binding Name}" Foreground="White" Margin="10,0,0,0" Checked="Filter_Checked" Unchecked="Filter_Checked" IsChecked="{Binding ElementName=Filter21Days, Path=IsChecked, Mode=OneWay}"></CheckBox> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 
<ComboBox.ItemsSource> 
<CompositeCollection> 
    <ComboBoxItem Content="Filter" Visibility="Collapsed" IsEnabled="False"/> 
    <ComboBoxItem> 
     <CheckBox x:Name="ViewAllFilter" Content="View All" Foreground="White" Margin="10,0,0,0" Checked="Filter_Checked" Unchecked="Filter_Checked" IsChecked="False"></CheckBox> 
    </ComboBoxItem> 
    <ComboBoxItem> 
     <CheckBox x:Name="Filter21Days" Content="Last 21 Days" Foreground="White" Margin="10,0,0,0" Checked="Filter_Checked" Unchecked="Filter_Checked" ></CheckBox> 
    </ComboBoxItem> 
    <ComboBoxItem> 
     <CheckBox x:Name="FilterBydate" Content="By Date" Foreground="White" Margin="10,0,0,0" Checked="Filter_Checked" Unchecked="Filter_Checked" Visibility="Collapsed"></CheckBox> 
    </ComboBoxItem> 
    <ComboBoxItem> 
     <Separator Background="White" Width="110" Height="1"></Separator> 
    </ComboBoxItem> 
    <CollectionContainer Collection="{Binding Source={StaticResource statusList}}"/> 

</CompositeCollection> 
</ComboBox.ItemsSource> 

.

ObservableCollection<Status> _statusList = new ObservableCollection<Status>(); 
public ObservableCollection<Status> statusList 
    { 
     get { return _statusList; } 
     set { _statusList = value; } 
    } 
+0

Этот код работает для меня. Вы отметили его «sql». Где sql? – VMaleev

+0

Вы правы. Проблема в том, как я манипулировал statusList. –

ответ

0

Проблема была в том, как я манипулировал statusList. У меня был statusList = другой список, который не вызывал изменения свойства. Работал вокруг него с помощью цикла for, как показано ниже.

statusList.Clear(); 
for (int i = 0; i < statusWindow.statusList.Count; i++) 
{ 
    statusList.Add(statusWindow.statusList[i]); 
} 
Смежные вопросы