我绝不是WPF的专家,所以这可能非常简单。我正在尝试将List绑定到组合框。它在代码中工作,在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;
}
答案 0 :(得分:2)
嗯,您需要设置主窗口的DataContext
:
public MainWindow()
{
_availableActions = new List<IMapperAction>
{
new ReplaceAction(),
new CollapseAction(),
new NewBasedOnAction()
};
InitializeComponent();
DataContext = this;
Loaded += OnWindowLoaded;
}
答案 1 :(得分:0)
根据此处的建议,您必须设置DataContext。
您还可以阅读此链接,了解为何以及何时应使用这两者中的哪一个: