gpt4 book ai didi

.net - WPF 将集合绑定(bind)到 ComboBox 并选择一个项目

转载 作者:行者123 更新时间:2023-12-04 05:22:21 28 4
gpt4 key购买 nike

一段时间以来,我一直在反对这一点。我不确定为什么它不起作用。我对整个 WPF 业务还是很陌生。

这是我的组合框的 XAML

<ComboBox 
SelectedValuePath="Type.FullName"
SelectedItem="{Binding Path=Type}"
Name="cmoBox" />

这是填充 ComboBox 的内容(myAssembly 是我使用可能类型列表创建的一个类)
cmoBox.ItemsSource = myAssembly.PossibleTypes;

我在后面的代码中将 DataContext 设置在 ComboBox 的父元素中,如下所示:
groupBox.DataContext = listBox.SelectedItem;

我希望绑定(bind)从组合框中选择正确的“可能类型”。它不选择任何东西。我已经尝试过 SelectedValue 和 SelectedItem。当我将 ComboBox 的 DisplayMemberPath 更改为不同的属性时,它改变了显示的内容,所以我知道它并没有完全损坏。

有任何想法吗???

最佳答案

您还可以在 xaml 中而不是在代码隐藏中设置绑定(bind)(我们尽可能避免在 xaml 页面中隐藏代码)。我假设 myAssembly 是控件的代码隐藏属性,并且是 MyAssembly 类的实例...

<UserControl 
x:Class="MyNamespace.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding}">

<ComboBox
Width="200"
ItemsSource="{Binding Path=myAssembly.PossibleTypes}"
SelectedValuePath="Type.FullName"
SelectedItem="{Binding Path=Type}"
Name="cmoBox" />
</UserControl>

这可能只是个人喜好,但我认为在 xaml 中进行数据绑定(bind)是更好的做法,因为这样可以更轻松地查看每个控件绑定(bind)的内容,而无需浏览代码隐藏。此外,如果您想从代码中引用您的 ComboBox,您应该在 xaml 中为其分配一个 x:Name 属性,而不仅仅是 Name。

关于.net - WPF 将集合绑定(bind)到 ComboBox 并选择一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/310805/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com