C#如何在winrt的gridview中将单个选择绑定到多个选择?

时间:2013-03-05 13:12:40

标签: c# data-binding windows-8 windows-runtime multi-select

我今天来找你,因为我不知道如何在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));
        }
    }

4 个答案:

答案 0 :(得分:1)

您可以尝试使用WinRT XAML Toolkit中的附加行为 - GridViewExtensions.BindableSelectionListViewExtensions.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”。在那之后,我做了我想要的东西选择项目。如果有人想要更多信息,我会给予。

非常感谢帮助我的其他人:)