C# 文本块未显示在ListView中
这是我的列表视图:C# 文本块未显示在ListView中,c#,wpf,listview,mvvm,C#,Wpf,Listview,Mvvm,这是我的列表视图: <ListView ItemsSource="{Binding ModuleList}"> <ListView.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <!--<Image Source="{Binding ModuleImage}" Stret
<ListView ItemsSource="{Binding ModuleList}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<!--<Image Source="{Binding ModuleImage}" Stretch="UniformToFill"/>-->
<TextBlock Text="{Binding ModuleName}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
对象是通过反序列化Json创建的。ItemTemplate中的绑定使用数据项类的属性作为其源属性。因此你应该写
Text="{Binding Name}"
而不是
Text="{Binding ModuleName}"
除非您将ListView的View
属性设置为(例如GridView
),否则您还可以更好地使用ListBox,它是ListView的基类,并且更简单:
<ListBox ItemsSource="{Binding ModuleList}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ModuleImage}"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ItemTemplate中的绑定使用数据项类的属性作为其源属性。因此你应该写
Text="{Binding Name}"
而不是
Text="{Binding ModuleName}"
除非您将ListView的View
属性设置为(例如GridView
),否则您还可以更好地使用ListBox,它是ListView的基类,并且更简单:
<ListBox ItemsSource="{Binding ModuleList}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ModuleImage}"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
控件的DataContext设置是否正确?它是这样的:
您当然还应该显示模块类的声明。除此之外,ItemListViewVM构造函数中的foreach循环似乎毫无意义。ModuleImage和ModuleName属性或字段的用途是什么?为什么不让ModuleList=moduleLoader.GetAllModules()作为函数呢代码>?因为我想在列表中显示ModuleImage
和ModuleName
。如果我只做ModuleList=moduleLoader.GetAllModules()代码>它不显示任何内容,因为ModuleImage
和ModuleName
都不是seture,这是模块中的两个属性。循环中的属性或变量是什么?即ModuleImage=module.ModuleImage代码>和ModuleName=module.Name代码>?控件的DataContext设置是否正确?它是这样的:
您当然还应该显示模块类的声明。除此之外,ItemListViewVM构造函数中的foreach循环似乎毫无意义。ModuleImage和ModuleName属性或字段的用途是什么?为什么不让ModuleList=moduleLoader.GetAllModules()作为函数呢代码>?因为我想在列表中显示ModuleImage
和ModuleName
。如果我只做ModuleList=moduleLoader.GetAllModules()代码>它不显示任何内容,因为ModuleImage
和ModuleName
都不是seture,这是模块中的两个属性。循环中的属性或变量是什么?即ModuleImage=module.ModuleImage代码>和ModuleName=module.Name代码>?