WPF ComboBox 数据绑定 xaml 与代码
本文关键字:代码 xaml 数据绑定 ComboBox WPF | 更新日期: 2023-09-27 17:57:24
我绝不是WPF方面的专家,所以这可能非常简单。我正在尝试将列表绑定到组合框。它在代码中工作,在 xaml 中不起作用。如果我从构造函数中删除 ItemsSource,它不起作用,这就是我知道的。我以为我在 xaml 中有等效的,但显然不是。
XAML:
<ComboBox Height="23"
HorizontalAlignment="Left"
Margin="146,76,0,0"
Name="comboBox1"
VerticalAlignment="Top"
Width="120"
ItemsSource="{Binding AvailableActions}"
DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedValue="Replace" />
构造 函数:
public MainWindow()
{
_availableActions = new List<IMapperAction>
{
new ReplaceAction(),
new CollapseAction(),
new NewBasedOnAction()
};
InitializeComponent();
Loaded += OnWindowLoaded;
comboBox1.ItemsSource = AvailableActions;
}
好吧,您需要设置主窗口的DataContext
:
public MainWindow()
{
_availableActions = new List<IMapperAction>
{
new ReplaceAction(),
new CollapseAction(),
new NewBasedOnAction()
};
InitializeComponent();
DataContext = this;
Loaded += OnWindowLoaded;
}
正如这里建议的,你必须设置数据上下文。
您还可以阅读此链接以了解为什么以及何时应使用两者中的哪一个:
为什么 DataContext 和 ItemsSource 不是冗余的?