C# 为什么只显示列标题而不显示列数据(Mv vM的逻辑是否错误?)

C# 为什么只显示列标题而不显示列数据(Mv vM的逻辑是否错误?),c#,silverlight,data-binding,mvvm,model-binding,C#,Silverlight,Data Binding,Mvvm,Model Binding,我是使用c#和xaml的silverlight应用程序的初学者我试图做的是显示如下信息: SerialNumber FirstName LastName //These are headings and below is the data s0 ss1 ss1L s1 ss2 ss2L 其中,s0 ss1 ss1L和s1 ss2 ss2L必须是列表 我的问题是: 它只显示标题,但不显示下面的数据,如下所示:但标题下不显

我是使用c#和xaml的silverlight应用程序的初学者我试图做的是显示如下信息:

SerialNumber  FirstName LastName //These are headings and below is the data
s0             ss1       ss1L
s1             ss2       ss2L 
其中,
s0 ss1 ss1L
和s
1 ss2 ss2L
必须是
列表

我的问题是:

它只显示标题,但不显示下面的数据,如下所示:但标题下不显示任何内容

我的代码如下:

我的项目名称是
DEV_CENTER
MainPage.Xaml

<UserControl x:Class="DEV_CENTER.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
              xmlns:vm="clr-namespace:DEV_CENTER"
             xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <UserControl.Resources>
        <vm:ProgramViewModel x:Key="ProgramViewModel"/>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">
        <data:DataGrid Grid.Row="0" x:Name="gridPrograms" AutoGenerateColumns="False" ItemsSource="{Binding Path=Ssss1 }" IsReadOnly="True"  DataContext="{StaticResource ProgramViewModel}" >
            <data:DataGrid.Columns>
                <data:DataGridTextColumn Header="SerialNumber" Binding="{Binding Path=sss1}" Width="2*"></data:DataGridTextColumn>
                <data:DataGridTextColumn Header="FirstName" Binding="{Binding Path=sss2}" Width="2*"></data:DataGridTextColumn>
                <data:DataGridTextColumn Header="LastName" Binding="{Binding Path=sss3}" Width="3*"></data:DataGridTextColumn>
            </data:DataGrid.Columns>
        </data:DataGrid>
    </Grid>
</UserControl>


您可以使用所有代码进行测试。有人能告诉我为什么不显示“s0 ss1 ss1L”和“s1 ss2 ss2L”吗?Mvvm逻辑中有什么错误吗?或者其他什么?

您的绑定都是错误的-您绑定到了奇怪的属性名称。在你的代码中是这样的吗?还是在你写问题的时候把它搞砸了

无论如何,您的网格应该如下所示:

<data:DataGrid Grid.Row="0" x:Name="gridPrograms" AutoGenerateColumns="False" ItemsSource="{Binding Path=Programs}" IsReadOnly="True"  DataContext="{StaticResource ProgramViewModel}" >
    <data:DataGrid.Columns>
        <data:DataGridTextColumn Header="SerialNumber" Binding="{Binding Path=SerialNumber}" Width="2*"></data:DataGridTextColumn>
        <data:DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" Width="2*"></data:DataGridTextColumn>
        <data:DataGridTextColumn Header="LastName" Binding="{Binding Path=LastName}" Width="3*"></data:DataGridTextColumn>
    </data:DataGrid.Columns>
</data:DataGrid>


此外,在调试时查看Visual Studio的输出窗口总是很好的—它可能包含有用的绑定错误消息,这将使您能够理解xaml的行为不符合预期的原因。

有一个安静的奇怪问题:当我尝试将“ItemsSource=“{binding Path=ssssss1}”更改为“ItemsSource=“{binding Path=Programs}”时正如我所保存的。visual studio崩溃,我需要重新启动。它无法改变它。(但是它已经保存了Binding=“{Binding Path=SerialNumber}”和2个类似的其他项的更改)但无法保存ItemsSource=“{Binding Path=Programs}”知道为什么吗?它给出这样的窗口,然后VStudio关闭。抱歉,我帮不了你确定,我将其标记为答案,但由于将上一部分替换为“ItemsSource=“{Binding Path=Programs}”时出现VStudio崩溃问题,我仍然没有进行测试。这种崩溃非常奇怪。