【发布时间】:2017-05-26 10:59:29
【问题描述】:
我制作了一个带有列表视图绑定的应用程序,其中正在处理类库中的数据因此数据模型驻留在类库中。作为扩展,我想使用 AvalonDock 来管理我的窗口。举个例子,他们绑定数据的方式是通过数据模板,数据模板是从视图模型通过数据模板传递的。因此,我删除了他们的文本框并放置了我的列表视图,但我无法再使用列表视图项源从 c# 代码访问列表视图,因为我已将其放入数据模板中。因此,在 fest 视图模型的构造函数中,我创建了一个列表类型的新实例并分配了值,但视图中没有数据。我逐步浏览了 festviewmodel,数据在我在 ViewModel 中创建的列表中,但视图中没有数据。出于好奇,我创建了一个文本块并在构造函数中设置了值,它显示在视图上,但我从 List 到 Listview 的数据是空的。
<localController:PanesTemplateSelector.festViewTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<ListView x:Name="lvfest" >
<ListView.View>
<GridView>
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Fest.id}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="ID" Click="lvfestColumnHeader_Click">ID</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Fest.format}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Format" Click="lvfestColumnHeader_Click">Format</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Fest.modified}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Date" Click="lvfestColumnHeader_Click">Date</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</DataTemplate>
</localController:PanesTemplateSelector.festViewTemplate>
public class festViewModel
{
public festViewModel() : base("fest Stats")
{
Workspace.This.ActiveDocumentChanged += new EventHandler(OnActiveDocumentChanged);
Fest = new List<festItem>();
Fest = MainWindow._fest.festData.fest_Items;
}
public List<festItem> Fest;
}
【问题讨论】: