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>

    运行结果如图

  • 相关阅读:
    OPPO R9sPlus MIFlash线刷TWRP Recovery ROOT详细教程
    OPPO R11 R11plus系列 解锁BootLoader ROOT Xposed 你的手机你做主
    努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
    华为 荣耀 等手机解锁BootLoader
    青橙 M4 解锁BootLoader 并刷入recovery ROOT
    程序员修炼之道阅读笔03
    冲刺8
    典型用户模板分析
    学习进度八
    冲刺7
  • 原文地址:https://www.cnblogs.com/fengshen/p/3151797.html
Copyright © 2011-2022 走看看