如图,日期后面跟着的破折号就是额外加进去的
详细步骤:
1.建立一个类:
public class Record
{
public DateTime Date { set; get; }//表示日期
public decimal Amount { set; get; }//金额
public String CosumeType { set; get; }//消费类型
public String PayType { set; get; }//支付类型
public bool IsClaim { set;get;}//是否报销
public string Comment { set; get; }//备注
}
2.建立一个集合类:
public class RecordCollection : ObservableCollection
{
public void InitializeTest()
{
Add(new Record() {Date=new DateTime(2013,7,9),Amount=20,CosumeType="娱乐",PayType="现金",IsClaim=false,Comment="...."});
Add(new Record() {Date = new DateTime(2013, 8, 14),Amount = 78,CosumeType = "餐饮",PayType ="刷卡",IsClaim = true, Comment = "...." });
Add(new Record() {Date=new DateTime(2013,4,6),Amount=14,CosumeType="购物",PayType="现金",IsClaim=false,Comment="...."});
}
}
3.在app.xaml的标签中添加模板标签
<Application.Resources>
<DataTemplate x:Key="ctRecords">
<Border>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="10">
<TextBlock Text="{Binding Date.Year, StringFormat= .-}"/>
<TextBlock Text="{Binding Date.Month, StringFormat= .-}" />
<TextBlock Text="{Binding Date.Day}" />
</StackPanel>
<TextBlock Grid.Column="1" Text="{Binding CosumeType}" Margin="10"/>
<TextBlock Grid.Column="2" Text="{Binding Amount, StringFormat= $.元}"Margin="10"/>
</Grid>
</Border>
</DataTemplate>
</Application.Resources>
注意了,的Text属性是绑定的,关键是第二个参数StringFormat=.- 点号前如果加入字符就是在绑定值前加入字符串,如果在点号后,就是在绑定值后加入字符串。
4.在历史页面(History.xaml)加入一个listBox控件。设置属性为绑定属性:
<ListBox ItemTemplate="{Binding Source={StaticResource ctRecords}}" ItemsSource="{Binding}" Height="200" HorizontalAlignment="Left" Margin="0,23,0,0" Name="lsbHistory" VerticalAlignment="Top" Width="460" FontSize="30" />
后台代码:
public History()
{
InitializeComponent();
//实例化集合类
RecordCollection rc =new RecordCollection();
//调用其测试方法
rc.InitializeTest();
//ListBox的数据源
lsbHistory.DataContext = rc;
}