gpt4 book ai didi

wpf - 无法在DataGrid中显示记录

转载 作者:行者123 更新时间:2023-12-03 10:30:07 25 4
gpt4 key购买 nike

我只是WPF的新手,在显示记录时遇到了问题。即使我已经拥有所有记录,但在显示它们时似乎还是“害羞”。

我的App.xaml.cs的代码:

    protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);

Window1 window = new Window1();
var viewModel = new Window1ViewModel();

window.PHGrid.ItemsSource = viewModel.ViewModels;
window.Show();
}

Window1ViewModel的代码:

public class Window1ViewModel : ViewModelBase
{
private readonly DAPHContrib _contribRepository;
private ObservableCollection<ViewModelBase> _viewModelBases;

public ObservableCollection<ViewModelBase> ViewModels
{
get
{
if (_viewModelBases == null)
{
_viewModelBases = new ObservableCollection<ViewModelBase>();
}
return _viewModelBases;
}
}

public Window1ViewModel()
{
_contribRepository = new DAPHContrib();
//Create instance of our view model to add it in our collection

PHContribViewModel viewModel = new PHContribViewModel(_contribRepository);
ViewModels.Add(viewModel);
}
}

这是我的Window1.xaml 更新了:
<Window x:Class="Wabby_App.Views.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Wabby_App.ViewModels"
xmlns:v="clr-namespace:Wabby_App.Views"
Title="Utos ng mahal ko"
Height="300"
Width="300">

<Grid>
<DataGrid
AutoGenerateColumns="True"
Height="200"
HorizontalAlignment="Center"
Name="PHGrid"
VerticalAlignment="Center"
Width="200"
ItemsSource="{Binding ViewModels}"/>

</Grid>

输出:

希望你能帮我这个忙。

最佳答案

根据您的评论,您可以获得 View 模型集合(ObservableCollection<ViewModelBase>)

在每个 View 模型基础实例(PHContribViewModel)中,您都有另一个集合ObservableCollection<PHContrib_Entity>

因此,您有两个级别的嵌套集合和一个要映射的数据网格。这将无法正常工作。为此,您需要将此集合的2级层次结构展平为ObservableCollection<PHContrib_Entity>类型的一个列表。

使用LINQ来做到这一点...

 protected override void OnStartup(StartupEventArgs e) {
base.OnStartup(e);
Window1 window = new Window1();
var viewModel = new Window1ViewModel();
window.PHGrid.ItemsSource
= viewModel.ViewModels.SelectMany(vm => vm.PHContribEntities).ToList();
window.Show();
}

让我知道这是否有帮助...

关于wpf - 无法在DataGrid中显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com