我正在使用DataGridComboBoxColumn
,如果我将datacontext设置为XAML中的Window,则意味着ItemsSource
在combobox
列中正常加载。如果我在InitializeComponent()
,Itemssource
未在组合框列中加载后在MainWindow
构造函数中将后台数据环境设置为代码后面的窗口。代码背后的数据上下文集与xaml有什么不同?
请您分享一下对此的建议吗?
代码:
<Window.DataContext>
<local:OrderInfoRepositiory/>
</Window.DataContext>
<DataGrid Name="dataGrid1"
Width="308"
Height="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
AutoGenerateColumns="False"
ItemsSource="{Binding OrderInfoCollection}">
<DataGrid.Columns>
<DataGridComboBoxColumn x:Name="ComboBoxColumn"
Header="Position"
ItemsSource="{Binding ComboItemSource}"
/>
<DataGridTextColumn Binding="{Binding OrderID}" Header="Name" />
</DataGrid.Columns>
</DataGrid>
OrderInfoRepository定义:
public class OrderInfoRepositiory : INotifyPropertyChanged
{
private ObservableCollection<string> comboitemSource;
public ObservableCollection<string> ComboItemSource
{
get
{
return comboitemSource;
}
set
{
comboitemSource = value;
RaisePropertyChanged("ComboItemSource");
}
}
ObservableCollection<OrderInfo> orderCollection;
public ObservableCollection<OrderInfo> OrderInfoCollection
{
get { return orderCollection; }
set { orderCollection = value; RaisePropertyChanged("OrderInfoCollection"); }
}
public OrderInfoRepositiory()
{
orderCollection = new ObservableCollection<OrderInfo>();
OrderInfoCollection = GenerateOrders();
ComboItemSource = new ObservableCollection<string>();
ComboItemSource.Add("Germany");
ComboItemSource.Add("Mexico");
ComboItemSource.Add("Sweden");
ComboItemSource.Add("France");
ComboItemSource.Add("Spain");
ComboItemSource.Add("Canada");
}
}
你可以发布代码 - 到目前为止您试过的'MainWindow'吗? –
我在mainwindow.xaml中添加了代码,请帮助我。其迫切的要求。 –
从代码后面的绑定不工作? –