C# WPF组合框,即使不在ItemSource中也显示SelectedValue

C# WPF组合框,即使不在ItemSource中也显示SelectedValue,c#,wpf,C#,Wpf,在WPF组合框中,我需要能够显示绑定ItemsSource集合中不存在的SelectedValue 我已经做了大量的搜索,到目前为止,我找到的唯一解决方案是绑定到Text属性并设置IsEditable=True。我确实在我的应用程序的另一部分中使用了它,但在这里不起作用,因为我不能冒险让用户提供无效数据 在XAML中,ItemsSource绑定到可用工作的可观察集合。此列表可能会随着时间的推移而更改,其中的项目会从列表中删除。SelectedValue绑定到datagrid上SelectedIt

在WPF组合框中,我需要能够显示绑定ItemsSource集合中不存在的SelectedValue

我已经做了大量的搜索,到目前为止,我找到的唯一解决方案是绑定到Text属性并设置IsEditable=True。我确实在我的应用程序的另一部分中使用了它,但在这里不起作用,因为我不能冒险让用户提供无效数据

在XAML中,ItemsSource绑定到可用工作的可观察集合。此列表可能会随着时间的推移而更改,其中的项目会从列表中删除。SelectedValue绑定到datagrid上SelectedItem的属性Title.workefforce。标题是一项单独的任务或更改,它分配了一项工作。一旦分配给标题,即使工作不再活跃,也不应更改

XAML:

C代码:


任何帮助都将不胜感激。谢谢

您可以将文本属性与IsEditable=True和IsReadOnly=True一起使用


这里还有另一种方法

您可以将Text属性与isEdit=True和IsReadOnly=True一起使用

这里还有另一种方法

只读模式下的ComboBox不支持显示ItemSource中不存在的项目,但是如果您准备进行小额交易,您可以实现类似的功能

如果在ChangeTitle上实现INotifyPropertyChanged,并添加类似于IsAvailable的布尔属性,然后可以将IsAvailable设置为false,而不是从集合WorkWorkforces中删除项

将其与组合框的ItemContainerStyle相结合,类似于

<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
         <Setter Property="IsEnabled" Value="{Binding Path=IsAvailable}"></Setter>
    </Style>
</ComboBox.ItemContainerStyle>
您可以显示不可用的项目,同时阻止用户选择它们。您可以通过编程方式选择不可用的项目,但您的用户将无法自己选择这些项目。

只读模式下的ComboBox不支持显示ItemSource中不存在的项目,但如果您准备进行小额交易,您可以实现类似的效果

如果在ChangeTitle上实现INotifyPropertyChanged,并添加类似于IsAvailable的布尔属性,然后可以将IsAvailable设置为false,而不是从集合WorkWorkforces中删除项

将其与组合框的ItemContainerStyle相结合,类似于

<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
         <Setter Property="IsEnabled" Value="{Binding Path=IsAvailable}"></Setter>
    </Style>
</ComboBox.ItemContainerStyle>

您可以显示不可用的项目,同时阻止用户选择它们。您可以通过编程选择不可用的项目,但您的用户将无法自行选择这些项目。

请阅读stackoverflow提供的关于在stackoverflow上编写问题的建议。你的问题对你的要求不太清楚。添加IsReadOnly=True加上IsEditable就成功了。谢谢请阅读stackoverflow提供的关于stackoverflow写作问题的建议。你的问题对你的要求不太清楚。添加IsReadOnly=True加上IsEditable就成功了。谢谢ComboBox确实支持显示绑定到的集合之外的数据。我知道IsEditable选项,但他想要的是普通只读ComboBox,它不支持请求的行为。我已经向未来的读者讲清楚了,谢谢你的提醒。谢谢你的回答。我最终并没有使用它,但它给了我一些想法,我可以在其他地方使用它。谢谢ComboBox确实支持显示绑定到的集合之外的数据。我知道IsEditable选项,但他想要的是普通只读ComboBox,它不支持请求的行为。我已经向未来的读者讲清楚了,谢谢你的提醒。谢谢你的回答。我最终并没有使用它,但它给了我一些想法,我可以在其他地方使用它。谢谢
<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
         <Setter Property="IsEnabled" Value="{Binding Path=IsAvailable}"></Setter>
    </Style>
</ComboBox.ItemContainerStyle>