[英]WPF Combo Box Data Binding Fill and Selected Item
我需要在部門列表中填充組合框,並在員工部門中設置該組合框的選定項目
模特部
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
}
模范員工:
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Department Department { get; set; }
}
視圖模型
public class ViewModel
{
public Employee Employee { get; set; }
public ObservableCollection<Department> Departments{ get; set; }
public ViewModel()
{
Employee new Employee ()
{
FirstName = "Harry",
LastName = "Park",
Department = new Department { Id = 1, Name = "Department 2" },
};
Departments= new ObservableCollection<Department> ()
{
new Department{ Id=1, Name="Department 1" },
new Department{ Id=2, Name="Department 2" },
new Department{ Id=2, Name="Department 3" },
};
}
XAML
<Grid DataContext="{StaticResource ViewModel
<ComboBox
ItemsSource="{Binding Department
SelectedValue="{Binding Employee.Department
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
你能幫助我嗎?
這段代碼的工作-確實經過測試:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new ViewModel();
}
}
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Department Department { get; set; }
}
public class ViewModel
{
public Employee Employee { get; set; }
public ObservableCollection<Department> Departments { get; set; }
public ViewModel()
{
Departments = new ObservableCollection<Department>()
{
new Department{ Id=1, Name="Department 1" },
new Department{ Id=2, Name="Department 2" },
new Department{ Id=2, Name="Department 3" },
};
Employee = new Employee()
{
FirstName = "Harry",
LastName = "Park",
Department = Departments.First(),
};
}
<Grid>
<ComboBox Height="30"
ItemsSource="{Binding Departments}"
SelectedValue="{Binding Employee.Department}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
<Grid DataContext="{StaticResource ViewModel}">
<ComboBox ItemsSource="{Binding Departments}"
SelectedItem="{Binding Employee.Department}"
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.