如何在uwp中单击按钮向listview添加新项目
我有一个Usercontrol,它包含一个listview和一个按钮 我想列出在单击按钮时自动添加到listview中的项目 多谢各位如何在uwp中单击按钮向listview添加新项目,uwp,Uwp,我有一个Usercontrol,它包含一个listview和一个按钮 我想列出在单击按钮时自动添加到listview中的项目 多谢各位 public List<PhotosGrid> AddPicture = new List<PhotosGrid>(); public EditPhotosUserControl() { this.InitializeComponent(); AddPicture.Add
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时自动添加新项目。如果它对其他人有帮助,那么这个答案的关键部分是绑定的集合必须是可观察的()。普通的列表
不起作用。该官员有一个有用的表格,解释了哪些集合类型处理哪些更改。最好修复此链接,然后删除此注释:应该是