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