在WPF项目中使用Microsoft Visual Studio。我有一个ListBox,其ItemsSource被设置为一个名为LuhFile的对象列表。 LuhFile包含一个公共字符串displayName。我希望列表框显示displayName,但是当我将displayname设置为ListBox的displayMemberPath时,我收到此错误:
System.Windows.Data错误:40:BindingExpression路径错误:'object'上找不到'displayName'属性'''LuhFile'(HashCode = 61470144)'。 BindingExpression:路径=显示名; DataItem ='LuhFile'(HashCode = 61470144); target元素是'TextBlock'(Name =''); target属性是'Text'(类型'String')
c#MainWindow
private List<LuhFile> luhFileList;
public MainWindow()
{
InitializeComponent();
luhFileList = new List<LuhFile>();
luhFileList.Add(new LuhFile("testPath", "testName", "testDisplay"));
luhListBox.ItemsSource = luhFileList;
}
c#LuhFile
class LuhFile
{
public string path;
public string fileName;
public string displayName;
public LuhFile(string givenPath, string givenFileName, string givenDisplayName)
{
path = givenPath;
fileName = givenFileName;
displayName = givenDisplayName;
}
}
XAML
<ListBox x:Name="luhListBox" MinHeight="100" MaxHeight="130" DisplayMemberPath="displayName" />
答案 0 :(得分:3)
WPF中的数据绑定适用于公共属性,而不适用于字段。
因此,请将您的项目类更改为:
public class LuhFile
{
public string path { get; set; }
public string fileName { get; set; }
public string displayName { get; set; }
...
}