124 lines
5.0 KiB
C#
124 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Windows;
|
|
|
|
using BeWo.Annotations;
|
|
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.Extensions;
|
|
|
|
namespace BeWo.View.Controls
|
|
{
|
|
public partial class BehinderungsartenSelectionControl
|
|
{
|
|
public static readonly DependencyProperty AusgewaehlteBehinderungsartenProperty = DependencyProperty.Register("AusgewaehlteBehinderungsarten", typeof(ObservableCollection<Behinderungsart>), typeof(BehinderungsartenSelectionControl));
|
|
public ObservableCollection<Behinderungsart> AusgewaehlteBehinderungsarten
|
|
{
|
|
get { return (ObservableCollection<Behinderungsart>)GetValue(AusgewaehlteBehinderungsartenProperty); }
|
|
set { SetValue(AusgewaehlteBehinderungsartenProperty, value); }
|
|
}
|
|
|
|
public static readonly DependencyProperty AusgewaehlteBehinderungsartenStringProperty = DependencyProperty.Register("AusgewaehlteBehinderungsartenString", typeof(String), typeof(BehinderungsartenSelectionControl));
|
|
public String AusgewaehlteBehinderungsartenString
|
|
{
|
|
get { return (String) GetValue(AusgewaehlteBehinderungsartenStringProperty); }
|
|
set { SetValue(AusgewaehlteBehinderungsartenStringProperty, value); }
|
|
}
|
|
|
|
private ObservableCollection<Behinderungsart> _behinderungsartenSourceListe;
|
|
public ObservableCollection<Behinderungsart> BehinderungsartenSourceListe
|
|
{
|
|
get { return _behinderungsartenSourceListe; }
|
|
set
|
|
{
|
|
_behinderungsartenSourceListe = value;
|
|
PossibleBehinderungsarten.DoForEach(dfe =>
|
|
{
|
|
if (_behinderungsartenSourceListe != null && _behinderungsartenSourceListe.Contains(dfe.Behinderungsart))
|
|
{
|
|
dfe.IsChecked = true;
|
|
}
|
|
});
|
|
|
|
InitBehinderungsartenString();
|
|
}
|
|
}
|
|
|
|
private void InitBehinderungsartenString()
|
|
{
|
|
var toolTipText = PossibleBehinderungsarten.Where(w => w.IsChecked).Aggregate(String.Empty, (current, item) => current + String.Format("{0}; ", item.Name));
|
|
|
|
AusgewaehlteBehinderungsartenString = toolTipText.TrimEnd(new[] { ' ', ';' });
|
|
}
|
|
|
|
private readonly ObservableCollection<BehinderungsartenListBoxItem> _PossibleBehinderungsarten = new ObservableCollection<BehinderungsartenListBoxItem>
|
|
{
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Blindheit),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Epilepsie),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Gehoerlosigkeit),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.GeistigeBehinderung),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Hoerbehinderung),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.InnereErkrankungen),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Koerperbehinderung),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Lernbehinderung),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.PsychischeErkrankungen),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Sehbehinderung),
|
|
new BehinderungsartenListBoxItem(Behinderungsart.Suchtkrankheiten)
|
|
};
|
|
|
|
public IEnumerable<BehinderungsartenListBoxItem> PossibleBehinderungsarten
|
|
{
|
|
get { return _PossibleBehinderungsarten; }
|
|
}
|
|
|
|
public BehinderungsartenSelectionControl()
|
|
{
|
|
DataContext = this;
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void BehinderungsartCB_OnChecked(object sender, RoutedEventArgs e)
|
|
{
|
|
InitBehinderungsartenString();
|
|
|
|
AusgewaehlteBehinderungsarten = PossibleBehinderungsarten.Where(w => w.IsChecked).Select(s => s.Behinderungsart).ToObservableCollection();
|
|
}
|
|
}
|
|
|
|
public class BehinderungsartenListBoxItem : INotifyPropertyChanged
|
|
{
|
|
private bool _IsChecked;
|
|
public bool IsChecked
|
|
{
|
|
get { return _IsChecked; }
|
|
set
|
|
{
|
|
_IsChecked = value;
|
|
OnPropertyChanged("IsChecked");
|
|
}
|
|
}
|
|
|
|
public String Name { get { return EnumTranslations.BehinderungsartTranslations[Behinderungsart]; } }
|
|
|
|
public Behinderungsart Behinderungsart { get; set; }
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
public BehinderungsartenListBoxItem(Behinderungsart pBehinderungsart)
|
|
{
|
|
Behinderungsart = pBehinderungsart;
|
|
}
|
|
|
|
[NotifyPropertyChangedInvocator]
|
|
protected virtual void OnPropertyChanged(string propertyName)
|
|
{
|
|
var handler = PropertyChanged;
|
|
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
}
|