gpt4 book ai didi

wpf - 将 DisplayMemberPath 设置为字典的结构值成员

转载 作者:行者123 更新时间:2023-12-01 07:16:36 25 4
gpt4 key购买 nike

我有一个列表框,其 ItemsSource 设置为 Dictionary(Of String, ColumnMetadata)ColumnMetadata 是一个结构。通过将 DisplayMemberPath 设置为 "Key",我可以很容易地让 DisplayMemberPath 显示键,但我不知道如何让它显示我的结构的成员.

我已尝试将 DisplayMemberPath 设置为 "{Binding LocalizedColumn}""Value.LocalizedColumn""LocalizedColumn", "{Value.LocalizedColumn}" 这些都不起作用。我的列表框中只有一堆空行。

我想要完成的就是将数据输入到列表框中。我不关心对字典的任何更新,并且在填充列表后字典不会更新。

我现在的代码是在运行时激活的:

        lstDatabaseColumns.ItemsSource = ImportData.GetAddressFieldData
lstDatabaseColumns.DisplayMemberPath = "Value.LocalizedColumn"
lstDatabaseColumns.SelectedValuePath = "Key"

我的结构如下:

    Public Structure ColumnMetadata
Dim LocalizedColumn As String
Dim Description As String
End Structure

我在输出窗口中收到以下消息:

System.Windows.Data Error: 40 : BindingExpression path error: 'LocalizedColumn' property not found on 'object' ''ColumnMetadata' (HashCode=1118531966)'. BindingExpression:Path=Value.LocalizedColumn; DataItem='KeyValuePair`2' (HashCode=-1578744570); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

最佳答案

我测试了 DisplayMemberPath="Value.MyValue" 并且运行良好。

样本数据是:

public class MyClass
{
public string MyValue { get; set; }
}

public Dictionary<int, MyClass> Data
{
get
{
Dictionary<int, MyClass> data = new Dictionary<int, MyClass>();
data[0] = new MyClass { MyValue = "A" };
data[1] = new MyClass { MyValue = "B" };

return data;
}
}

Xaml:

 <ListBox DisplayMemberPath="Value.MyValue" x:Name="lst" ItemsSource="{Binding ElementName=local, Path=Data}" />

祝你好运!

关于wpf - 将 DisplayMemberPath 设置为字典的结构值成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139171/

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