过滤器Combobox itemsource仅显示活动值加上当前选择的值



我在整个应用程序中使用了一个自定义组合控制。我希望这些物品源仅显示活动项目和当前选择的项目,即使它不活跃。我实际上使所有工作都在起作用,但是只有当有一个转换器包含SelectedValue的XAML时才起作用。这两个属性都在实现InotifyPropertychanged。

我的过滤看起来像这样的代码(由target_updated和selectionChanged事件发射):

if (combobox.SelectedValue != null)
                base.ItemsSource = combobox.ItemsSource.Cast<IEntity2>().Where(x => (bool)x.Fields["IsActive"].CurrentValue == true || x.Fields[combobox.SelectedValuePath].CurrentValue.ToString() == combobox.SelectedValue.ToString()).ToList().AsEnumerable();
            else
                base.ItemsSource = combobox.ItemsSource.Cast<IEntity2>().Where(x => (bool)x.Fields["IsActive"].CurrentValue == true).ToList().AsEnumerable();

两个XAML样品选择值绑定:第一个作品,第二个作品无。

SelectedValue="{Binding MyVm.ObjectId, Converter={StaticResource IntToShortConverter}}"
SelectedValue="{Binding MyVm.AnotherObjectId}"

使用使所有这些工作起作用的转换器的绑定正在发生其他事情。我可以在Combobox上使用另一个属性或事件来捡起它吗?

事实证明这不是转换器。在样本XAML的第二行中,首先定义了项目源或在选定值结合的左侧定义。顶部样本XAML的项目源定义为第二或右侧。

通过在项目源"从左到右"之前定义选定价值来修改订单后,它可以完美地工作。不是最佳答案,因为这意味着在编写XAML时必须牢记这一点...

最新更新