Wpf 循环浏览(和删除)绑定组合框的项
我是WPF的新手,并且痛苦地意识到了这一点。我一直在寻找这个问题的答案,但都没有成功,现在我正在向知识更渊博的同龄人寻求建议 场景 我正在使用的应用程序允许用户将新记录输入数据库,或修改现有记录 我有一个包含绑定组合框的表单。它从数据库中填充,该数据库由公开DTO的WPF服务访问 从UI的角度来看,表单有两种模式: 1.输入新记录 2.修改现有记录 在这两种情况下都会出现有问题的组合框,但要求在表单处于“修改”模式时具有较少的可见选项 我试图做的是在表单处于“修改”模式时循环组合框项目,并删除/隐藏不应出现的选项 XAMLWpf 循环浏览(和删除)绑定组合框的项,wpf,combobox,Wpf,Combobox,我是WPF的新手,并且痛苦地意识到了这一点。我一直在寻找这个问题的答案,但都没有成功,现在我正在向知识更渊博的同龄人寻求建议 场景 我正在使用的应用程序允许用户将新记录输入数据库,或修改现有记录 我有一个包含绑定组合框的表单。它从数据库中填充,该数据库由公开DTO的WPF服务访问 从UI的角度来看,表单有两种模式: 1.输入新记录 2.修改现有记录 在这两种情况下都会出现有问题的组合框,但要求在表单处于“修改”模式时具有较少的可见选项 我试图做的是在表单处于“修改”模式时循环组合框项目,并删除/
<ComboBox x:Name="RecordType" Grid.Column="1" Grid.Row="1" Width="150" HorizontalAlignment="Left" SelectedValue="{Binding Path=RecordTypeID,TargetNullValue=0}"/>
(注意:IsApplicable()是一个简单的方法,它将收到的字符串与表单处于“修改”模式时允许出现的选项列表进行比较。)
问题
我相信你们很多人都已经知道。。。无法将DTO类型的对象强制转换为System.Windows.Controls.ComboBoxItem类型
问题
我可以用这种或类似的方法获取字符串值吗?如果是的话,请怎么做?正确的方法是在集合视图上应用过滤器 看
ICollectionView视图=CollectionViewSource.GetDefaultView(comboBox.ItemsSource);
view.Filter=不适用
view.Refresh();// 正确的方法是在集合视图上应用过滤器
看
ICollectionView视图=CollectionViewSource.GetDefaultView(comboBox.ItemsSource);
view.Filter=不适用
view.Refresh();// 如果您将combobox绑定到ObservableCollection,然后在需要时从集合中删除这些项,可能会更容易
下面是一个示例:如果您将组合框绑定到一个ObservableCollection,然后在需要时从集合中删除这些项,可能会更容易
下面是一个示例:如何填充组合框?如何填充组合框?谢谢Joe。我确实试过了,但没能成功。这可能更多的是因为我的N00B,而不是其他原因。谢谢乔。我确实试过了,但没能成功。这可能更多的是因为我的N00B,而不是别的。谢谢你,哈桑。这对我很管用。(请注意,只要达到15个代表分数,我就会回来投票!)谢谢,哈桑。这对我很管用。(附言,只要获得15个代表分数,我就会回来投票支持!)
foreach (ComboBoxItem item in this.RecordType.Items)
{
if (IsApplicable(item.Content.ToString()) == false)
{
item.Visibility = Visibility.Hidden;
}
}
ICollectionView view = CollectionViewSource.GetDefaultView(comboBox.ItemsSource);
view.Filter = IsApplicable
view.Refresh(); // <-- call this whenever you change the view model