我今天来找你,因为我不知道如何在gridview中进行多选绑定。今天我知道如何制作单曲并获得结果,但我不知道如何进行多项选择。你有什么想法吗?
这是我的代码:
public sealed partial class Base1 : ApplicationName.Common.LayoutAwarePage, INotifyPropertyChanged
{
private ObservableCollection<Base> projects;
public ObservableCollection<Base> Projects
{
get { return projects; }
set
{
projects = value;
NotifyPropertyChanged();
}
}
private Base selectedProject;
public Base SelectedProject
{
get {
return selectedProject;
}
set {
selectedProject = value;
NotifyPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] string propertyname = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
}
}
答案 0 :(得分:1)
您可以尝试使用WinRT XAML Toolkit中的附加行为 - GridViewExtensions.BindableSelection
。 ListViewExtensions.BindableSelection
here的示例显示了如何使用它。只需将GridViewExtensions.BindableSelection
绑定到ObservableCollection
即可保持同步。
答案 1 :(得分:0)
在Base 1的构造函数中:
this.SelectedProjects = new ObservableCollection<Base>();
并添加属性:
private ObservableCollection<Base> selectedProjects;
public ObservableCollection<Base> SelectedProjects
{
get {
return selectedProjects;
}
set {
selectedProjects = value;
NotifyPropertyChanged();
}
}
使用Selected Projects将您的gridview的property SelectedItems数据绑定。
答案 2 :(得分:0)
你不能直接数据绑定到SelectedItems属性,因为它的readonly(我想我们在这里讨论wpf)。 但是,您可以在Base类中实现IsSelected属性,然后将其绑定到item容器的IsSelected属性。
<Style TargetType="ListViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
然后,您可以通过
之类的内容获取所选项目public IEnumerable<Base> SelectedProjects
{
get { return Projects.Where(x => x.IsSelected);}
}
答案 3 :(得分:0)
我尝试了很多东西,但最后我发现了一些非常容易使用的东西。
我只使用GridView的“SelectedItems”。在那之后,我做了我想要的东西选择项目。如果有人想要更多信息,我会给予。
非常感谢帮助我的其他人:)