public ApartmentMarker(ApartmentsGroup apartmentGroup, Action <ApartmentsGroup> clickHandler) : base(apartmentGroup.Location) { const double defaultOpacity = 0.7; var component = new ApartmentMarkerShape(apartmentGroup.Title, apartmentGroup.HasNewest, apartmentGroup.AllIsOld) { Opacity = defaultOpacity }; component.MouseUp += (sender, args) => clickHandler(apartmentGroup); int?cachedZIndex = null; component.MouseEnter += (sender, args) => { component.Opacity = 1; cachedZIndex ??= ZIndex; ZIndex = cachedZIndex.Value + 1; }; component.MouseLeave += (sender, args) => { component.Opacity = defaultOpacity; if (cachedZIndex != null) { ZIndex = cachedZIndex.Value; } }; Shape = component; //var comp = new TestShape(apartmentGroup); //comp.MouseLeftButtonUp += (sender, args) => clickHandler(apartmentGroup); //Shape = comp; }
public ApartmentsGroupViewModel(ApartmentsGroup group) { if (group == null) { throw new ArgumentNullException(nameof(group)); } Title = group.Title; Apartments = new ObservableCollection <ApartmentDataViewModel>( group.Apartments .OrderBy(x => x.Price) .Select(x => new ApartmentDataViewModel(x))); }
public ApartmentsGroupWindow(ApartmentsGroup group) { InitializeComponent(); DataContext = new ApartmentsGroupViewModel(group); }
public TestShape(ApartmentsGroup apartmentGroup) { _apartmentGroup = apartmentGroup ?? throw new ArgumentNullException(nameof(apartmentGroup)); }