@daniil14056

Как в логике mvvc wpf передать в класс ViewModel из view свойство класса .xaml.cs?

Есть canvas, на него добавляются элементы, как добавлять туда элементы, из viewModel?
Находил примеры, там везде свойство ItemsSource, но такого свойства нету у Canvas
И как передать по нажатию кнопки по команде, параметр поле из класса
public partial class A : UserControl
    {
        List<System.Numerics.Complex> points=new(); 
         List<System.Numerics.Complex> Points=>points; 
        public A()
        {
            InitializeComponent();
        }
}

Почему это поле не передается через, передается null
CommandParameter="{Binding ElementName=selfUserControl,Path=Points, Mode=OneWay}">, selfUserControl x:Name элемента.
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 2
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Почему это поле не передается через, передается null
CommandParameter="{Binding ElementName=selfUserControl,Path=Points, Mode=OneWay}">


Потому что свойство которое биндится должно быть dependency property
Плюс почитайте про отличие List от ObservableCollection, что за чем нужно и когда использовать первое и второе применительно к биндингам. Потом зачем нужен интерфейс INotifyPropertyChanged
Ну и коллекцию кидать как параметр команды такое себе решение.
Ответ написан
Комментировать
WNeZRoS
@WNeZRoS
Почему это поле не передается через, передается null
CommandParameter="{Binding ElementName=selfUserControl,Path=Points, Mode=OneWay}">, selfUserControl x:Name элемента.

Проперти Points должен быть public

Находил примеры, там везде свойство ItemsSource, но такого свойства нету у Canvas

Надо использовать ItemsControl, у которого как раз есть ItemsSource, а Canvas использовать как панель для этого ItemsControl через ItemsPanel
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы