如何在uwp中单击按钮向listview添加新项目

如何在uwp中单击按钮向listview添加新项目,uwp,Uwp,我有一个Usercontrol,它包含一个listview和一个按钮 我想列出在单击按钮时自动添加到listview中的项目 多谢各位 public List<PhotosGrid> AddPicture = new List<PhotosGrid>(); public EditPhotosUserControl() { this.InitializeComponent(); AddPicture.Add

我有一个Usercontrol,它包含一个listview和一个按钮

我想列出在单击按钮时自动添加到listview中的项目

多谢各位

 public List<PhotosGrid> AddPicture = new List<PhotosGrid>();
 public EditPhotosUserControl()
        {
            this.InitializeComponent();
            AddPicture.Add(new PhotosGrid { Picture = "/Assets/FamilyOfficeImg/car1.png", placeHolder = "Car Side View", Caption = "Side View" });
            AddPicture.Add(new PhotosGrid { Picture = "/Assets/FamilyOfficeImg/interior.png", placeHolder = "Car Interior View", Caption = "Interior View" });
             PhotosGridView.ItemsSource = AddPicture;


        }

        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            AddPicture.Add(new PhotosGrid { Picture = "", placeHolder = "Car Interior View", Caption = "Interior View" });
            PhotosGridView.ItemsSource = AddPicture;


        }
 public class PhotosGrid
    {
        public string Picture { get; set; }
        public string placeHolder { get; set; }
        public string Caption { get; set; }
    }
public List AddPicture=new List();
公共EditPhotosUserControl()
{
this.InitializeComponent();
AddPicture.Add(新PhotosGrid{Picture=“/Assets/FamilyOfficeImg/car1.png”,placeHolder=“汽车侧视图”,Caption=“侧视图”});
AddPicture.Add(新PhotosGrid{Picture=“/Assets/FamilyOfficeImg/interior.png”,placeHolder=“汽车内部视图”,Caption=“interior View”});
PhotoGridView.ItemsSource=AddPicture;
}
私有void AddButton_单击(对象发送方,路由目标)
{
AddPicture.Add(新的PhotosGrid{Picture=”“,placeHolder=“汽车内部视图”,Caption=“内部视图”});
PhotoGridView.ItemsSource=AddPicture;
}
公共类网格
{
公共字符串图片{get;set;}
公共字符串占位符{get;set;}
公共字符串标题{get;set;}
}

首先,您需要更改
PhotosGrid
类以实现
INotifyPropertyChanged
,这样您就不需要重复设置
项资源

下面是我将如何做到这一点

public class PhotosGrid : INotifyPropertyChanged
{
    private string _picture;
    public string Picture
    {
        get { return _picture; }
        set { _picture = value; OnPropertyChanged("Picture"); }
    }

    private string _placeHolder;
    public string PlaceHolder
    {
        get { return _placeHolder; }
        set { _placeHolder = value; OnPropertyChanged("PlaceHolder"); }
    }

    private string _caption;
    public string Caption
    {
        get { return _caption; }
        set { _caption = value; OnPropertyChanged("Caption"); }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string name)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
    }
}
接下来,您需要将
AddPicture
List
更改为,以便更新列表,并且可以使用
INotifyPropertyChanged
。官方文档中有C++、C++和CX的所有必要类型的表。

因此,您的
UserControl
将是:

public sealed partial class EditPhotosUserControl : UserControl
{
    public ObservableCollection<PhotosGrid> AddPicture = new ObservableCollection<PhotosGrid>();
    public EditPhotosUserControl()
    {
        this.InitializeComponent();
        AddPicture.Add(new PhotosGrid { Picture = "", PlaceHolder = "Car Side View", Caption = "Side View" });
        AddPicture.Add(new PhotosGrid { Picture = "", PlaceHolder = "Car Interior View", Caption = "Interior View" });
        PhotosGridView.ItemsSource = AddPicture;
    }

    private void Button_Tapped(object sender, TappedRoutedEventArgs e)
    {
        AddPicture.Add(new PhotosGrid { Picture = "", PlaceHolder = "Car Interior View", Caption = "Interior View" });
    }
}
公共密封部分类EditPhotosUserControl:UserControl
{
公共ObservableCollection AddPicture=新ObservableCollection();
公共EditPhotosUserControl()
{
this.InitializeComponent();
AddPicture.Add(新的PhotosGrid{Picture=”“,占位符=“汽车侧视图”,Caption=“侧视图”});
AddPicture.Add(新的PhotosGrid{Picture=”“,PlaceHolder=“汽车内部视图”,Caption=“内部视图”});
PhotoGridView.ItemsSource=AddPicture;
}
私有无效按钮(对象发送器,TappedRoutedEventArgs e)
{
AddPicture.Add(新的PhotosGrid{Picture=”“,PlaceHolder=“汽车内部视图”,Caption=“内部视图”});
}
}

这将处理您的我希望在单击addButton时自动添加新项目

最终输出


祝你好运。

你能分享你目前拥有的吗?我希望在单击addButton时自动添加新项目。如果它对其他人有帮助,那么这个答案的关键部分是绑定的集合必须是可观察的()。普通的
列表
不起作用。该官员有一个有用的表格,解释了哪些集合类型处理哪些更改。最好修复此链接,然后删除此注释:应该是