Mir geht es darum, dass ich Elemente habe, welche einen Node gesetzt bekommen können (bzw. sollten). Ich würde das gerne über eine ComboBox lösen und dort aber die Namen der Nodes anzeigen. Ich habe das schon mit einigen Ratschlägen von Stackoverflow versucht, unter anderem auch einem Dictionary als ItemSource für die ComboBox. Das Resultat war aber immer das gleiche: eine leere ComboBox. Kann mir da bitte jemand auf die Sprünge helfen?
Zur Verdeutlichung ein Minimalbeispiel, ohne Dictionary. Das würde mir nämlich eigentlich besser gefallen, da ich dann nicht noch das Dictionary pflegen müsste. Es fehlt absichtlich das INotifyProperty-Zeugs, weil das ja eigentlich unerheblich sein sollte um in der ComboBox was angezeigt zu bekommen.
mfg benediktibk
Zur Verdeutlichung ein Minimalbeispiel, ohne Dictionary. Das würde mir nämlich eigentlich besser gefallen, da ich dann nicht noch das Dictionary pflegen müsste. Es fehlt absichtlich das INotifyProperty-Zeugs, weil das ja eigentlich unerheblich sein sollte um in der ComboBox was angezeigt zu bekommen.
Code:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:Model x:Key="Model"/>
</Window.Resources>
<Grid DataContext="{StaticResource Model}">
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items}">
<DataGrid.Columns>
<DataGridComboBoxColumn
ItemsSource="{Binding OtherItems}"
DisplayMemberPath="Name"
SelectedItemBinding="{Binding OtherItem}"
Header="other item"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Code:
public class OtherItem
{
public string Name { get; set; }
}
public class Item
{
public OtherItem OtherItem { get; set; }
}
class Model
{
public Model()
{
OtherItems = new ObservableCollection<OtherItem> { new OtherItem{ Name = "blub" }, new OtherItem{ Name = "blob"} };
Items = new ObservableCollection<Item> { new Item(), new Item(), new Item() };
}
public ObservableCollection<OtherItem> OtherItems { get; set; }
public ObservableCollection<Item> Items { get; set; }
}
mfg benediktibk
Zuletzt bearbeitet: