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

接続された動作がありGridViewExtensions.BindableSelectionます-WinRT XAML Toolkit で試すことができます。ListViewExtensions.BindableSelectionここのサンプルは、それをどのように使用するかを示しています。にバインドGridViewExtensions.BindableSelectionするだけObservableCollectionで、同期が保たれます。

于 2013-03-05T16:24:06.117 に答える
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 に答える
0

Base1 のコンストラクターで:

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

プロパティを追加します:

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

SelectedProjects を使用して、グリッドビューのSelectedItems プロパティをデータバインドします。

于 2013-03-05T13:17:01.233 に答える