繁体   English   中英

CollectionViewSource绑定在删除或添加项目时不更新

[英]CollectionViewSource Binding not updating when removing or adding item

绑定到列表时我的组合框更新有问题。 我进行更改时,所有其他控件都会正确更新。 我正在尝试从按钮中删除下拉列表中的项目。

<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; }
    }

问题在于我操纵statusList的方式。 我有statusList =另一个列表,它没有触发属性更改。 使用下面的for循环来解决它。

statusList.Clear();
for (int i = 0; i < statusWindow.statusList.Count; i++)
{
    statusList.Add(statusWindow.statusList[i]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM