Как передать в user control текущий экземпляр класса

Как передать в user control текущий экземпляр, чтобы его использовать для привязки внутри user control (ItemCard).

Строчка <customcontrols:ItemCard></customcontrols:ItemCard> Это и есть user control (ItemCard)

MainViewModel.cs

using Organaizer.MVVM.Model;
using Organaizer.MVVM.View;
using Organaizer.MVVM.ViewModel.Base;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Input;

namespace Organaizer.MVVM.ViewModel
{
    public class MainViewModel : BaseViewModel
    {
       
        private ObservableCollection<ItemInfoCard> _itemInfoCards = new ObservableCollection<ItemInfoCard>() {
            new ItemInfoCard(E_CategoryGroup.dir, false),
            new ItemInfoCard(E_CategoryGroup.exe, false)
        };
        public IEnumerable<ItemInfoCard> ItemInfoCards
        {
            get => _categoryGroup==E_CategoryGroup.favorite? _itemInfoCards.Where(item => item.IsFavorite == true) : _itemInfoCards.Where(item => item.CategoryGroup == _categoryGroup);
        }
        public void Initialize()
        {
            _itemInfoCards.Add(new ItemInfoCard(E_CategoryGroup.exe, true));
        }

        #region Commands

        private ICommand _cmdSelectedGroup;
        public ICommand CmdSelectedGroup => _cmdSelectedGroup = new RelayCommand<string>(SelectedGroup);
        private void SelectedGroup(string value)
        {
            _categoryGroup = (E_CategoryGroup) Enum.Parse(typeof(E_CategoryGroup), value);
            RisePropertyChanged(nameof(ItemInfoCards));
        }


        private ICommand _cmdAddElement;
        public ICommand CmdAddElement => _cmdAddElement = new RelayCommand(AddElement);
        private void AddElement(object item)
        {
            SelectAddType vm = new SelectAddType(this);
            vm.Show();
        }


        private ICommand _cmdSelectFavorite;
        public ICommand CmdSelectFavorite => _cmdSelectFavorite = new RelayCommand<bool>(SelectFavorite);
        private void SelectFavorite(bool value)
        {
            MessageBox.Show(value.ToString());
        }
        #endregion
    }
}

MainWindows.xaml

            ScrollViewer Grid.Column="1" >
                <ItemsControl Grid.Column="0" ItemsSource="{Binding ItemInfoCards}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Margin="20" VerticalAlignment="Top" Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <customcontrols:ItemCard></customcontrols:ItemCard>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </ScrollViewer>

ItemCard.xaml.cs

namespace Organaizer.UserControls
{
    /// <summary>
    /// Логика взаимодействия для ItemCard.xaml
    /// </summary>
    public partial class ItemCard : UserControl
    {
        public ItemCard()
        {
            InitializeComponent();
        }
    }
}

ItemCard


Ответы (0 шт):