5

コンテキスト メニューに文字列のリストを表示しようとしています。このアプリには、編集、削除、グループへの追加が可能な人々のデータグリッドが含まれています。私は、人を追加できるさまざまなグループである StudentGroup クラスを持っています (StudentGroup のメンバーの 1 つは名前です)。ViewModel は、グループの完全なリストを取得し、Observable Collection 内に配置します。ユーザーが右クリックして [ユーザーを追加] にカーソルを合わせるたびに、コンテキスト メニューを機能させようとしています -> 監視可能なコレクションの名前文字列を含むサイド メニュー項目が開きます。

これは、StackOverflow で同様の質問を検索してこれまでに試したことですが、まだうまくいきませんでした。

XAML:

<DataGrid.ContextMenu>
    <ContextMenu AllowDrop="True" ItemsSource="{Binding Entries}">
        <MenuItem Header="Edit" />
        <MenuItem Header="Delete"/>
        <MenuItem Header="Add User to">
            <MenuItem.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" />
                </DataTemplate>
            </MenuItem.ItemTemplate>
        </MenuItem>
        </ContextMenu>
</DataGrid.ContextMenu>

XAML コード ビハインド ビュー:

private TitleViewMode TVM=new TitleViewMode;
public Welcome()
    {
        InitializeComponent();
        _grid1.ContextMenu.DataContext = TVM;
    }

ビューモデル

class TitleViewModel
{
    public ObservableCollection<StudentGroup> Entries {get;set;}
    private List<StudentGroup> sg1 { get; set;}
    public TitletViewModel()
    {
        sg1 = GetGroups();
        Entries = new ObservableCollection<StudentGroup>(sg1);
    }

}
4

1 に答える 1

3

これはうまくいくはずです

<MenuItem Header="Add User to" ItemsSource="{Binding Entries}">
    <MenuItem.ItemTemplate>
        <DataTemplate>
            <MenuItem Header="{Binding Name}"></MenuItem>
        </DataTemplate>
     </MenuItem.ItemTemplate>
</MenuItem>
于 2013-08-16T01:21:57.780 に答える