我正在使用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中添加了代碼,請幫助我。其迫切的要求。 –
從代碼後面的綁定不工作? –