我在后面的Window代码中维护了Combo-Box的集合,如果我通过xaml绑定该集合意味着它无法获取集合,直到在后面的代码中为窗口外部设置DataContext。任何人都可以帮我解决这个问题。
public ObservableCollection<string> Orders
{
get; set;
}
public MainWindow()
{
InitializeComponent();
Orders = new ObservableCollection<string>();
Orders.Add("1000");
Orders.Add("1001");
Orders.Add("1002");
Orders.Add("1003");
//this.DataContext = this;
}
答案 0 :(得分:1)
<Grid DataContext="{Binding RelativeSource={RelativeSource AncestorType=Window}}">
<ComboBox Height="25" Width="100" ItemsSource="{Binding Orders}"></ComboBox>
</Grid>
您可以为Grid本身设置DataContext,以便在各种UI元素中使用相同的
答案 1 :(得分:0)
您可以将窗口的datacontext绑定到自身。 除非您通过以下方式移动设置数据,否则仍然无效:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
>
<Grid>
<ComboBox ItemsSource="{Binding Orders}"/>
</Grid>
</Window>
和
public ObservableCollection<string> Orders
{
get; set;
}
public MainWindow()
{
Orders = new ObservableCollection<string>();
Orders.Add("1000");
Orders.Add("1001");
Orders.Add("1002");
Orders.Add("1003");
InitializeComponent();
}