我在 C# 中关注 MVVM 并尝试在列表框中显示视图。
我正在设置列表框项目源(在代码中,而不是在绑定和使用 viewmodels 集合中),然后将数据模板设置为我在 xaml 中的视图。我遇到的问题是我的视图总是加载它的默认构造函数值,如果我从视图中删除数据上下文但是它加载得很好。
下面是我在 xaml 中创建的列表框
<ListBox Name="lbCatalogues" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<view:CatalogueRowView/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这是我认为的xaml。如果我删除 DataContext 它可以工作
<UserControl.DataContext>
<model:CatalogueModel />
</UserControl.DataContext>
<Grid Name="Container" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
<!-- Catalogue_ID, UploadedTime, Client_ID, Name, Desc, Filesize -->
<Label Name="lblCatalogueID" Content="{Binding Path=CatalogueID}" Grid.Column="0"/>
<Label Name="lblUploadedTime" Content="{Binding Path=UploadedTime}" Grid.Column="1"/>
<Label Name="lblCatalogueName" Content="{Binding Path=Name}" Grid.Column="2"/>
<Label Name="lblCatalogueDescription" Content="{Binding Path=Description}" Grid.Column="3"/>
<Label Name="lblFilesize" Content="{Binding Path=Filesize}" Grid.Column="4"/>
<Grid/>
这是我设置列表框 ItemSource 的代码:
lbCatalogues.ItemsSource = catalogueViewModel.Records;
我的问题是如何让视图在列表框中正确加载,以便列表框中的每个项目都有一个链接到该列表框 Itemsource 的 DataContext?