为什么只显示列标题而不显示列数据(Mv vM的逻辑错误吗?)
本文关键字:显示 错误 vM 标题 为什么 数据 Mv | 更新日期: 2023-09-27 17:58:53
我是使用c#和xaml的silverlight应用程序的创建者我想做的是显示如下信息:
SerialNumber FirstName LastName //These are headings and below is the data
s0 ss1 ss1L
s1 ss2 ss2L
其中CCD_ 1和s 1 ss2 ss2L
必须是CCD_。
我的问题是:
它只是显示标题,而不是下面的数据,如下所示:http://prntscr.com/3axadr但在标题下方不要显示任何内容。
我的代码如下:
我的项目名称是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没有按预期运行。