【发布时间】:2011-12-01 15:06:07
【问题描述】:
我想显示一个表格,其中包含来自存在的类型供应商的 ObservableCollection 的项目。 问题是当我在集合中加载数据时它不会显示它。 这是我的 xaml 代码(我确定我遗漏了一些东西):
<Grid x:Name="Grid1">
<ListView Name="ListViewVendors"
Margin="4,20,40,100"
ItemsSource="{Binding Path=VendorsCollection}">
<ListView.Background>
<LinearGradientBrush>
<GradientStop Color="Gray" Offset="0"/>
</LinearGradientBrush>
</ListView.Background>
<ListView.View>
<GridView>
<GridViewColumn Header="Vendor Name"
DisplayMemberBinding="{Binding Path=Name}"/>
<GridViewColumn Header="Contact Name"
DisplayMemberBinding="{Binding Path=ContactName}"/>
<GridViewColumn Header="Contact Phone"
DisplayMemberBinding="{Binding Path=ContactPhone}"/>
<GridViewColumn Header="Contact Fax"
DisplayMemberBinding="{Binding Path=ContactFax}"/>
<GridViewColumn Header="Contact Email"
DisplayMemberBinding="{Binding Path=ContactEmail}"/>
<GridViewColumn Header="Contact Website"
DisplayMemberBinding="{Binding Path=ContactWebSite}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
【问题讨论】:
-
何时以及如何加载集合中的数据(从 View 获取 DataContext 到 ViewModel ctor 到集合初始化到创建/添加项目到集合)?
-
注意输出窗口中的绑定错误(正如 H.B. 建议的那样),并确保您绑定到的属性调用“OnPropertyChanged”,以便通知您的视图集合已更改。据我所知,您的 XAML 看起来不错。
-
问题是CollectionVariable 没有get;设置;
标签: wpf xaml listview data-binding