0

我今天来找你是因为我不知道如何在网格视图中进行多选绑定。今天我知道如何制作单曲并获得结果,但我不知道如何制作多选。你有什么想法 ?

这是我的代码:

  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

4 回答 4

1

在 WinRT XAML Toolkit 中有一个附加行为GridViewExtensions.BindableSelection,您可以尝试。ListViewExtensions.BindableSelection此处的示例显示了您将如何使用它。只需绑定GridViewExtensions.BindableSelection到一个ObservableCollection,它们应该保持同步。

于 2013-03-05T16:24:06.117 回答
0

在 Base1 的构造函数中:

this.SelectedProjects = new ObservableCollection<Base>();

并添加属性:

private ObservableCollection<Base> selectedProjects;
public ObservableCollection<Base> SelectedProjects
{
    get {
        return selectedProjects;
    }
    set {
        selectedProjects = value;
        NotifyPropertyChanged();
    }
}

并将您的 gridview的属性 SelectedItems与 SelectedProjects数据绑定。

于 2013-03-05T13:17:01.233 回答
0

您不能直接将数据绑定到 SelectedItems 属性,因为它是只读的(我想我们在这里谈论的是 wpf)。但是,您可以在 Base 类中实现 IsSelected 属性,然后将其绑定到项目容器的 IsSelected 属性。

<Style TargetType="ListViewItem"> 
    <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>

然后,您可以通过类似的方式获取选定的项目

public IEnumerable<Base> SelectedProjects 
{
    get { return Projects.Where(x => x.IsSelected);}
}
于 2013-03-05T13:19:57.157 回答
0

我尝试了很多东西,但最后我发现了一些非常容易使用的东西。

我只是使用 GridView 的“SelectedItems”。在那之后,我在那些选择的项目上做了我想要的。如果有人想要更多信息,我会给。

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

于 2013-03-06T17:02:07.487 回答