gpt4 book ai didi

c# - WPF/C# 组合框数据绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 18:04:51 26 4
gpt4 key购买 nike

首先,我想为我的英语表达歉意,这远非完美(它不是我的母语...)。

我的 XAML 代码中存在与数据绑定(bind)相关的问题。我有一个组合框,它应该列出我放在自定义 Canvas 上的所有图形节点。我的图形节点在列表 graphCanvas.uinodes 中引用,每个节点都有一个 name。这就是我想要在组合框中显示的内容。

所以我尝试了这样的事情:

<ComboBox ItemsSource="{Binding ElementName=graphCanvas, Path=uinodes/name}"
Height="23" HorizontalAlignment="Left" Name="comboBox1"
VerticalAlignment="Top" Width="71" Foreground="Black" />

但即使在我的 Canvas 上绘制节点之后,我的组合框还是空的...

有什么线索吗?

谢谢。

最佳答案

使用 ElementName 的绑定(bind)查找具有该名称的 WPF 元素。我怀疑您是否将 Canvas 子类化并向其添加了 uinodes 属性,这是 Path 找到某些东西的唯一方法,即使路径语法是正确的,但事实并非如此。

如果您在运行程序时查看“输出”窗口,您会看到一条错误消息,告诉您为什么绑定(bind)不起作用。这是一个开始。

但即便如此,您也无法通过这种方法获得想要的结果。您可能想要的看起来更像:

<ComboBox ItemsSource="{Binding ElementName=graphCanvas, Path=uinodes}" 
DisplayMemberPath="name"/>

甚至

<ComboBox ItemsSource="{Binding ElementName=graphCanvas, Path=uinodes}">
<ComboBox.ItemTemplate>
<TextBlock Text="{Binding name}"/>
</ComboBox.ItemTemplate>
</ComboBox>

关于c# - WPF/C# 组合框数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007584/

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