Пользовательских элементов управления видимостью в модели WPF с использованием MVVM
У меня есть 2 элемента управления UserControl в моем главном окне,один со списком некоторых имен, а другой со списком,текстовым полем и кнопкой.Проблема в том, что когда я запускаю приложение, Мое главное окно должно быть только с usercontrol1, а когда я нажимаю на имя, usercontrol2 должен открыться на моем главном окне.Как я могу этого достичь,я новичок в этом, пожалуйста, помогите мне
Marvin Ma
Вы можете определить свойство для обработки видимости.
Также определите команду или маршрутизируемое событие для обработки нажатия кнопки, которое устанавливает для свойства нужное значение.
Попробуйте сами, это просто.
Если вам нужна помощь, просто спросите.
Marvin Ma
Да, извините, что хотел это отредактировать, но вы были быстрее.
В списке есть события, которые вы ищете:
Например, SelectionChanged.
Если событие было запущено, просто установите видимость, это не самый "чистый" способ, но если вы новичок в MVVM, это будет первый шаг.
Marvin Ma
Тот факт, что вы используете пользовательский элемент управления, позволяет вам использовать перенаправленное событие списка, потому что вы не создаете код позади в своем представлении.
Вы обрабатываете код в пределах вашего пользовательского контроля.
То же самое справедливо и для пользовательского элемента управления.
Marvin Ma
Определите свойство, которое обрабатывает видимость (например, UserControlVisibility), и привяжите его к свойству visibility вашего пользовательского элемента управления.
Вы должны использовать BoolToVisibilityConverter.
Созданное вами свойство (UserControlVisbility) будет установлено, если вы выберете элемент своего списка (в вашем случае имя).
Убедитесь, что вы переключили видимость, когда имя не выбрано (посмотрите на выбранный элемент).
А теперь попробуйте записать эту логику...Я мог бы сделать это для вас, но это не будет иметь никакого эффекта обучения для вас.
Помните: учитесь на практике!
Member 10321925
хорошо спасибо тебе
Member 10321925
частный bool _selectedItem;
public bool SelectedItem
{
get { return _selectedItem; }
набор
{
_selectedItem = значение;
PropertyChanged(this, new PropertyChangedEventArgs("SelectedItem"));
}
}
Member 10321925
Я сделал это, и его работа, когда я запускаю приложение usercontrol2, не видна...но не знаю, как получить usercontrol2, когда элемент списка выбран, я пытался, но не смог его получить