[英]Data grid inside list view as item template and Read Data from Database
我已經通過WPF和下面的代碼創建了一個項目
<UserControl.Resources>
<x:Array x:Key="OrderDataGridItems" Type="{x:Type system:String}">
<system:String>1</system:String>
<system:String>2</system:String>
<system:String>3</system:String>
</x:Array>
<DataTemplate x:Key="TemplateWithDataGrid" >
<DataGrid ItemsSource="{StaticResource OrderDataGridItems}">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"
Width="*" />
<DataGridTextColumn Header="Column2"
Width="*" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</UserControl.Resources>
Triggers>
<Grid>
<ListView x:Name="CustomersOrderList" ItemTemplate="{StaticResource TemplateWithDataGrid}" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</UserControl>
上面的代碼僅適用於靜態資源值(在OrderDataGridItems中)。 listview內的這個CustomersOrderList與數據庫值配合良好。 我的要求是從數據庫中獲取並填充數據庫中的所有數據到DataTemplate和ListView中,這可能嗎? 或者,請幫助我獲得此解決方案的工作,我們將不勝感激,非常感謝您的支持。
你並不需要創建Templates
之前,除非你是不是重復使用這些模板。 為簡單起見,我在下面給出了示例代碼,以使用來自外部源的數據填充DataGrid
。
查看-
<Grid>
<DataGrid ItemsSource="{Binding OrderDataGridItems }" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Width="Auto" Binding="{Binding CountryName}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
CodeBehind-如果遵循MVVM,則應該在ViewModel中使用它。
public partial class MainWindow : Window, INotifyPropertyChanged
{
private List<CountryData> orderDataGridItems;
public List<CountryData> OrderDataGridItems
{
get { return orderDataGridItems; }
set
{
orderDataGridItems = value;
OnPropertyChanged("OrderDataGridItems");
}
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
var listFromDataBase = new List<CountryData>();
listFromDataBase.Add(new CountryData { CountryName ="India"});
OrderDataGridItems = listFromDataBase;
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.