Hi I don't know what I forgot to return the value of the combo box. I'm already doing the fifth round and can't find the error. The data is correctly loaded from the DB (model) and displayed in the combo box (viewModel). When I select an element, I can't just output it via console or something.
XAML:
<Label Grid.Row="0" Margin="0" FontSize="45" Content="{Binding LabelText}" HorizontalAlignment="Center" VerticalAlignment="Top" Grid.Column="1" Padding="5,1,5,5"/>
<ComboBox Grid.Row="0" Margin="83.2,98,82.8,-111.2" ItemsSource="{Binding MeinInhalt, NotifyOnSourceUpdated=True}" SelectedValue="{Binding AusgewaehlterInhalt, NotifyOnSourceUpdated=True}" FontSize="48" Background="LightBlue" MaxDropDownHeight="850" Width="888" Height="95" VerticalAlignment="Top" Grid.Column="1" Padding="5,1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding CommandDDLChanged}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
C# ViewModel/TestVM.cs
class TestVM : MainVM
{
private MeinInhalt _ausgewaehlterInhalt;
private RelayCommand<object> _commandDDLChanged;
public ICommand UpdateViewCommand { get; set; }
public string LabelText
{
get {
return _labelText; }
set
{
_labelText = value;
}
}
//zeigt alle MeinInhalte an
public ObservableCollection<string> MeinInhalt { get; }
//zeigt alle MeinInhalte zu beginn, bei auswahl aendert sich aber nichts
public MeinInhalt AusgewaehlterInhalt
{
get { return _ausgewaehlterInhalt; }
set
{
if (_ausgewaehlterInhalt == null)
{
_ausgewaehlterInhalt = value;
Console.WriteLine("Der Ausgewaehlte MeinInhalt a) ist: {0}", _ausgewaehlterInhalt);
}
else
{
_ausgewaehlterInhalt = value;
Console.WriteLine("Der Ausgewaehlte MeinInhalt b) ist: {0}", _ausgewaehlterInhalt);
}
OnPropertyChanged("AusgwaehlterMeinInhalt");
}
}
public object _meinInhaltErfassen { get; private set; }
public TestVM(MainWindowVM mainwinVM, string SELECTION)
{
UpdateViewCommand = new UpdateViewCommand(mainwinVM);
//dataquerry is working and shown in combobox
MeinInhalt = new ObservableCollection<string>(Model.MeinInhalt.AlleMeinInhalte.Select(x => x.MeinInhalt).ToList());
}
public RelayCommand<object> CommandDDLChanged
{
get
{
if (_commandDDLChanged == null)
{
_commandDDLChanged = new RelayCommand<object>(execute => DoCommandDDLChanged());
}
return _commandDDLChanged;
}
}
private void DoCommandDDLChanged()
{
neuelisteMeinInhalte();
Console.WriteLine("Der Ausgewaehlte MeinInhalt c) ist: {0}", _ausgewaehlterInhalt);
}
public void neuelisteMeinInhalte()
{
Console.WriteLine("Der Ausgewaehlte MeinInhalt d) ist: {0}", _ausgewaehlterInhalt);
OnPropertyChanged("FreieFrachtbreife");
}
}
c# Model/MeinInhalt.cs
public class MeinInhalt : tblTest
{
public MeinInhalt(string meinInhalt)
{
MeinInhalt = meinInhalt;
}
public static List<MeinInhalt> AlleMeinInhalte { get;private set; }
public static List<MeinInhalt> VerwendeterMeinInhalt { get; private set; }
public static void initialisiereMeinInhalt()
{
AlleMeinInhalte = new List<MeinInhalt>();
VerwendeterMeinInhalt = new List<MeinInhalt>();
using (var db = new SomeEntities())
{
var query = db.tblTest.Select(x => new { x.MeinInhalt }).Distinct().ToList();
foreach (var item in query)
{
AlleMeinInhalte.Add(new MeinInhalt(item.MeinInhalt));
}
}
}
}