gpt4 book ai didi

c# - WPF ListView.ItemsSource 绑定(bind)问题

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

我有一个 MainViewModel 和 Customers 属性(作为 ObservableCollection 的 CustomerViewModel 对象列表)。我想将该列表作为 ItemsSource 绑定(bind)到 ListView 控件。我的 MainViewModel 绑定(bind)到 Window 的 DataContext 属性。我使用 ServiceLocator 模式来创建 MainViewModel 实例,该实例将 IDataService 接口(interface)作为构造函数中的参数。我使用接口(interface)向 MainViewModel 注入(inject)数据服务,并可以在 Blend 中为设计师创建一些测试数据。在 Expression Blend 中一切正常,数据显示正确,但是当我运行代码 ItemsSource 为 null 并且没有绑定(bind)数据时。 DataContext 是正确的。当我将 DataContext 设置为 null 并再次将 MainViewModel 实例 ItemsSource 设置为 Customers 属性时。为什么应用程序启动时它不自动绑定(bind)到客户属性?

<Grid x:Name="LayoutRoot" DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
<ListView Margin="12" x:Name="customerList"
ItemsSource="{Binding Customers}">
...
</ListView>
</Grid>

最佳答案

在创建 View 之前,您的 Locator 的 MainViewModel 是否存在?如果稍后填充它并且您不触发 NotifyPropertyChanged 事件,则绑定(bind)将始终指向它最初绑定(bind)时的空值。

关于c# - WPF ListView.ItemsSource 绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684217/

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