zoukankan      html  css  js  c++  java
  • wpMVVM模式绑定集合的应用

    一、新建一个项目,命名为wpMVVMone,添加一个有关食品信息的类Food.CS,代码如下:

    public class Food
        {
            public string Name { get; set; }
            public string Description { get; set; }
            public string iconUri { get; set; }
            public string Type { get; set; }
        }

    二、添加一个存放图片的文件夹images,然后往里添加若干张图片。

    三、新建一个类:FoodViewModel,并加入命名空间

    using System.Collections.ObjectModel;
    using System.ComponentModel;

    完整代码如下:

    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    
    namespace wpMVVMone
    {
        public class FoodViewModel:INotifyPropertyChanged
        {
            private ObservableCollection<Food> _allfood;
            public ObservableCollection<Food> Allfood
            {
                get
                {
                    if (_allfood == null)
                        _allfood = new ObservableCollection<Food>();
                    return _allfood;
                }
                set
                {
                    if (_allfood != value)
                    {
                        _allfood = value;
                        NotifyChanged("Allfood");
                    }
                }
            }
            public FoodViewModel()
            {
                try
                {
                    Food item0 = new Food()
                    {
                        Name = "西红柿",
                        iconUri = "images/f01.jpg",
                        Type = "Healthy",
                        Description = "西红丝的味道很不错"
                    };
                    Food item1 = new Food()
                    {
                        Name = "黄瓜",
                        iconUri = "images/f02.jpg",
                        Type = "Healthy",
                        Description = "黄瓜的味道很不错"
                    };
                    Food item2 = new Food()
                    {
                        Name = "西柿",
                        iconUri = "images/f03.jpg",
                        Type = "Healthy",
                        Description = "西丝的味道很不错"
                    };
                    Food item3 = new Food()
                    {
                        Name = "西红柿1",
                        iconUri = "images/f04.jpg",
                        Type = "Healthy",
                        Description = "西红丝1的味道很不错"
                    };
                    Food item4 = new Food()
                    {
                        Name = "西红柿2",
                        iconUri = "images/f05.jpg",
                        Type = "Healthy",
                        Description = "西红丝2的味道很不错"
                    };
                    Food item5 = new Food()
                    {
                        Name = "西红柿3",
                        iconUri = "images/f06.jpg",
                        Type = "Healthy",
                        Description = "西红丝3的味道很不错"
                    };
                    Food item6 = new Food()
                    {
                        Name = "西红柿4",
                        iconUri = "images/f07.jpg",
                        Type = "Healthy",
                        Description = "西红丝4的味道很不错"
                    };
                    Allfood.Add(item0);
                    Allfood.Add(item1);
                    Allfood.Add(item2);
                    Allfood.Add(item3);
                    Allfood.Add(item4);
                    Allfood.Add(item5);
                    Allfood.Add(item6);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            public event PropertyChangedEventHandler PropertyChanged;
            public void NotifyChanged(string propertyname)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
                }
            }
        }
    }
    View Code

    四、切换到MainPage页面的XAML代码界面,添加引用:xmlns:my="clr-namespace:wpMVVMone"
         在外层Grid上边添加

    <phone:PhoneApplicationPage.Resources>
            <my:FoodViewModel x:Key="food"/>
        </phone:PhoneApplicationPage.Resources>

    放置内容的Grid中的XAML代码为

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" DataContext="{StaticResource food}">
                <ListBox x:Name="listbox1" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Allfood}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" Background="Gray" Width="450" Margin="10">
                                <Image Source="{Binding iconUri}" Stretch="None"/>
                                <TextBlock Text="{Binding Name}" FontSize="40" Width="150"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </Grid>

    运行结果如图

  • 相关阅读:
    ASP.NET程序中常用的三十三种代码
    uri
    用XML保存和读取图片
    location
    访问相关节点
    onkeyup,onkeydown,onkeypress
    Asp.net中Server.Transfer,Server.Execute和Response.Redirect的区别
    关于window.showModalDialog()返回值的学习心得
    WP7数据绑定
    hdu 1568
  • 原文地址:https://www.cnblogs.com/fengshen/p/3151797.html
Copyright © 2011-2022 走看看