我有一个带有6个列表框的窗口,我正在尝试创建一个小型汽车数据库,但我在第二个列表框中遇到了绑定问题。当我尝试点击第一个列表框中的制造商时,绑定不起作用。
<Window x:Class="Autolab.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="700"
Loaded="Window_Loaded_1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="119*" />
<ColumnDefinition Width="116*" />
<ColumnDefinition Width="137*" />
<ColumnDefinition Width="137*" />
<ColumnDefinition Width="134*" />
<ColumnDefinition Width="134*" />
</Grid.ColumnDefinitions>
<ListBox x:Name="hersteller" Grid.Column="0" DisplayMemberPath="h_name" SelectedValuePath="h_id"/>
<ListBox x:Name="marke" Grid.Column="1"
ItemsSource="{Binding SelectedItem.marken, ElementName=hersteller}" />
<ListBox x:Name="kraftstoff" Grid.Column="2" />
<ListBox x:Name="art" Grid.Column="3" />
<ListBox x:Name="werkstatt" Grid.Column="4" />
</Grid>
这是我有我的收藏品
public partial class herstellers
{
public herstellers()
{
this.marken = new HashSet<marke>();
}
public int h_id { get; set; }
public string h_name { get; set; }
public virtual ICollection<marke> marken { get; set; }
}
}
答案 0 :(得分:0)
首先,我建议使用ObservableCollection
而不是HashSet
使用ListBox
public partial class herstellers
{
public herstellers()
{
this.marken = new ObservableCollection<marke>();
}
public int h_id { get; set; }
public string h_name { get; set; }
public virtual ICollection<marke> marken { get; set; }
}
接下来,假设您的marken
类,您必须至少拥有一个实现ICollection
的属性,以便第二个列表框中的ItemsSource
可以填充。
public class Marken
{
// Assuming this marke is populated.
public ObservableCollection<int> marke { get; set; }
}