Я хочу отобразить в двух Combobox в списке возможных часов начала и окончания пользователь может выбрать бронирование в установке с использованием функции Comboboxinstalaciones_selectionChanged (объект. < /p>
Сначала он работает, но если пользователь пытается выбрать другую установку, комбо -конец конца установки больше не отображается. < /p>
Я оставил здесь код, который я использую для этого:
Услуги от horarioshasinstalaciones
internal class HorariosHasInstalacioneServicios : ServicioGenerico
{
private IDContexto contexto;
public HorariosHasInstalacioneServicios(IDContexto context) : base(context)
{
contexto = context;
}
// Metodo LINQ para sacar los horarios de las instalaciones segun su id
public IEnumerable ObtenerHorariosPorInstalacionConInclude(int idInstalacion)
{
var horariosUnicos = contexto.HorariosHasInstalaciones
.Include(hhi => hhi.IdHorariosNavigation)
.Where(hhi => hhi.IdInstalaciones == idInstalacion)
.Select(hhi => new Horario
{
Inicio = hhi.IdHorariosNavigation.Inicio,
Fin = hhi.IdHorariosNavigation.Fin
})
.GroupBy(h => h.Inicio)
.Select(grp => grp.First())
.ToList();
return horariosUnicos;
}
}
mvm из резервов
public class MVMReservar : MVBaseCRUD
{
private IDContexto idContexto;
private InstalacionesServicio instalacionesServicio;
private ReservaServicio reservaServicio;
private ListCollectionView listaAux;
private List listaHorariosInicio;
private List listaHorariosFin;
private HorariosHasInstalacioneServicios horariosInstaServicio;
private HorariosServicio horariosServicio;
private Reserva _reserva;
public MVMReservar(IDContexto ent, int usuario)
{
this.idContexto = ent;
inicializa();
}
private void inicializa()
{
reservaServicio = new ReservaServicio(idContexto);
servicio = reservaServicio;
instalacionesServicio = new InstalacionesServicio(idContexto);
horariosInstaServicio = new HorariosHasInstalacioneServicios(idContexto);
horariosServicio = new HorariosServicio(idContexto);
_reserva = new Reserva();
listaAux = new ListCollectionView(reservaServicio.GetAll);
var reservas = GetReservasPorUsuario(usuario);
listaReservasUsuarios = new ListCollectionView(reservas);
}
public List ListaHorariosInicio
{
get => listaHorariosInicio;
set
{
listaHorariosInicio = value;
NotifyPropertyChanged(nameof(ListaHorariosInicio));
}
}
public List ListaHorariosFin
{
get => listaHorariosFin;
set
{
listaHorariosFin = value;
NotifyPropertyChanged(nameof(ListaHorariosFin));
}
}
// Cargar los horarios de las instalaciones segun su id
public void CargarHorariosInstalacion(int idInstalacion)
{
var horarios = horariosInstaServicio.ObtenerHorariosPorInstalacionConInclude(idInstalacion);
ListaHorariosInicio = horarios.OrderBy(h => h.Inicio).ToList();
ListaHorariosFin = horarios.OrderBy(h => h.Fin).ToList();
}
класс, ucreservar
public partial class UCReservar : UserControl
{
private Usuario usuarioActual;
private IDContexto idContexto;
private MVMInstalaciones InstMVM;
private MVMReservar ReMVM;
private ReservaServicio reservaServ;
private List listaInstal;
private int idInstalacionEscogida;
public UCReservar(IDContexto idCont, Usuario usuActual)
{
InitializeComponent();
usuarioActual = usuActual;
idContexto = idCont;
inicializa();
}
private void inicializa()
{
ReMVM = new MVMReservar(idContexto);
InstMVM = new MVMInstalaciones(idContexto);
reservaServ = new ReservaServicio(idContexto);
this.DataContext = ReMVM;
}
private void ComboBoxInstalaciones_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (comboInstalaciones.SelectedItem is Instalacione idInst)
{
idInstalacionEscogida = idInst.IdInstalaciones;
ReMVM.CargarHorariosInstalacion(idInstalacionEscogida);
}
}
private void comboHorarioInicioInstalacion_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (comboHorarioInicioInstalacion.SelectedItem is Horario horarioSeleccionado)
{
comboHorarioFinInstalacion.ItemsSource = null;
comboHorarioFinInstalacion.IsEnabled = true;
var horasFin = idContexto.HorariosHasInstalaciones
.Include(hhi => hhi.IdHorariosNavigation)
.Where(hhi => hhi.IdInstalaciones == idInstalacionEscogida && hhi.IdHorariosNavigation.Inicio == horarioSeleccionado.Inicio)
.Select(hhi => new Horario
{
IdHorarios = hhi.IdHorariosNavigation.IdHorarios,
Inicio = hhi.IdHorariosNavigation.Inicio,
Fin = hhi.IdHorariosNavigation.Fin
})
.Distinct()
.OrderBy(h => h.Fin)
.ToList();
comboHorarioFinInstalacion.ItemsSource = horasFin;
comboHorarioFinInstalacion.DisplayMemberPath = "Fin";
comboHorarioFinInstalacion.SelectedValuePath = "IdHorarios";
}
else
{
comboHorarioFinInstalacion.IsEnabled = false;
comboHorarioFinInstalacion.ItemsSource = null;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... -end-hours
Проблемы с отображением окончания объекта [закрыто] ⇐ C#
Место общения программистов C#
-
Anonymous
1739211319
Anonymous
Я хочу отобразить в двух Combobox в списке возможных часов начала и окончания пользователь может выбрать бронирование в установке с использованием функции Comboboxinstalaciones_selectionChanged (объект. < /p>
Сначала он работает, но если пользователь пытается выбрать другую установку, комбо -конец конца установки больше не отображается. < /p>
Я оставил здесь код, который я использую для этого:
[b] Услуги от horarioshasinstalaciones [/b]
internal class HorariosHasInstalacioneServicios : ServicioGenerico
{
private IDContexto contexto;
public HorariosHasInstalacioneServicios(IDContexto context) : base(context)
{
contexto = context;
}
// Metodo LINQ para sacar los horarios de las instalaciones segun su id
public IEnumerable ObtenerHorariosPorInstalacionConInclude(int idInstalacion)
{
var horariosUnicos = contexto.HorariosHasInstalaciones
.Include(hhi => hhi.IdHorariosNavigation)
.Where(hhi => hhi.IdInstalaciones == idInstalacion)
.Select(hhi => new Horario
{
Inicio = hhi.IdHorariosNavigation.Inicio,
Fin = hhi.IdHorariosNavigation.Fin
})
.GroupBy(h => h.Inicio)
.Select(grp => grp.First())
.ToList();
return horariosUnicos;
}
}
[b] mvm из резервов [/b]
public class MVMReservar : MVBaseCRUD
{
private IDContexto idContexto;
private InstalacionesServicio instalacionesServicio;
private ReservaServicio reservaServicio;
private ListCollectionView listaAux;
private List listaHorariosInicio;
private List listaHorariosFin;
private HorariosHasInstalacioneServicios horariosInstaServicio;
private HorariosServicio horariosServicio;
private Reserva _reserva;
public MVMReservar(IDContexto ent, int usuario)
{
this.idContexto = ent;
inicializa();
}
private void inicializa()
{
reservaServicio = new ReservaServicio(idContexto);
servicio = reservaServicio;
instalacionesServicio = new InstalacionesServicio(idContexto);
horariosInstaServicio = new HorariosHasInstalacioneServicios(idContexto);
horariosServicio = new HorariosServicio(idContexto);
_reserva = new Reserva();
listaAux = new ListCollectionView(reservaServicio.GetAll);
var reservas = GetReservasPorUsuario(usuario);
listaReservasUsuarios = new ListCollectionView(reservas);
}
public List ListaHorariosInicio
{
get => listaHorariosInicio;
set
{
listaHorariosInicio = value;
NotifyPropertyChanged(nameof(ListaHorariosInicio));
}
}
public List ListaHorariosFin
{
get => listaHorariosFin;
set
{
listaHorariosFin = value;
NotifyPropertyChanged(nameof(ListaHorariosFin));
}
}
// Cargar los horarios de las instalaciones segun su id
public void CargarHorariosInstalacion(int idInstalacion)
{
var horarios = horariosInstaServicio.ObtenerHorariosPorInstalacionConInclude(idInstalacion);
ListaHorariosInicio = horarios.OrderBy(h => h.Inicio).ToList();
ListaHorariosFin = horarios.OrderBy(h => h.Fin).ToList();
}
[b] класс, ucreservar [/b]
public partial class UCReservar : UserControl
{
private Usuario usuarioActual;
private IDContexto idContexto;
private MVMInstalaciones InstMVM;
private MVMReservar ReMVM;
private ReservaServicio reservaServ;
private List listaInstal;
private int idInstalacionEscogida;
public UCReservar(IDContexto idCont, Usuario usuActual)
{
InitializeComponent();
usuarioActual = usuActual;
idContexto = idCont;
inicializa();
}
private void inicializa()
{
ReMVM = new MVMReservar(idContexto);
InstMVM = new MVMInstalaciones(idContexto);
reservaServ = new ReservaServicio(idContexto);
this.DataContext = ReMVM;
}
private void ComboBoxInstalaciones_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (comboInstalaciones.SelectedItem is Instalacione idInst)
{
idInstalacionEscogida = idInst.IdInstalaciones;
ReMVM.CargarHorariosInstalacion(idInstalacionEscogida);
}
}
private void comboHorarioInicioInstalacion_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (comboHorarioInicioInstalacion.SelectedItem is Horario horarioSeleccionado)
{
comboHorarioFinInstalacion.ItemsSource = null;
comboHorarioFinInstalacion.IsEnabled = true;
var horasFin = idContexto.HorariosHasInstalaciones
.Include(hhi => hhi.IdHorariosNavigation)
.Where(hhi => hhi.IdInstalaciones == idInstalacionEscogida && hhi.IdHorariosNavigation.Inicio == horarioSeleccionado.Inicio)
.Select(hhi => new Horario
{
IdHorarios = hhi.IdHorariosNavigation.IdHorarios,
Inicio = hhi.IdHorariosNavigation.Inicio,
Fin = hhi.IdHorariosNavigation.Fin
})
.Distinct()
.OrderBy(h => h.Fin)
.ToList();
comboHorarioFinInstalacion.ItemsSource = horasFin;
comboHorarioFinInstalacion.DisplayMemberPath = "Fin";
comboHorarioFinInstalacion.SelectedValuePath = "IdHorarios";
}
else
{
comboHorarioFinInstalacion.IsEnabled = false;
comboHorarioFinInstalacion.ItemsSource = null;
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79426856/problems-displaying-facility-end-hours[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия