【发布时间】:2014-06-01 19:24:44
【问题描述】:
我正在使用 c# 和 xaml 开发一个 Silverlight 应用程序。我必须显示如下信息:
SerialNumber FirstName LastName
s0 ss1 ss1L
s1 ss2 ss2L
其中s0 ss1 ss1L 和 s1 ss2 ss2L 必须是 List。
xaml 代码有点像这样:
<UserControl x:Class="DEV_CENTER.ProgramGrid"
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:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
xmlns:vm="clr-namespace:ViewModel;assembly=ViewModel"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources>
<vm:ProgramViewModel x:Key="ProgramViewModel"/>
</UserControl.Resources>
<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>
</UserControl>
现在我应该如何在 c# 中编码以实现我在 ViewModel 和 Model 中提出的要求?
我确定一定是这样的:如果我错了,请纠正我?
public List<Program> getAllPrograms()
{
List<Program> programs = new List<Program>();
Program p1 = new Program();
p1.SerialNumber= "ss0";
p1.FirstName = "ss1";
p1.LastName= "ss1L";
Program p2 = new Program();
p2.SerialNumber= "Program 2";
p2.FirstName = "ss1";
p2.LastName= "ss2L";
programs.Add(p1);
programs.Add(p2);
programs.Add(p3);
return programs;
}
请帮助我使用 mvvm 实现我的目标。
【问题讨论】:
-
你能澄清你的问题吗?你想得到什么具体的结果?
-
@KenHung 请在顶部查看:“SerialNumber FirstName LastName”(必须在 xaml 中)和“s0 ss1 ss1L”“s1 ss2 ss2L”必须使用 c# 使用 Mvvm 的概念来完成。我的意思是我的标题不能更改(显示标题)的 Xaml 代码,但您可以根据需要编写 C# 代码。
标签: c# xaml data-binding mvvm binding