データをクラスライブラリで処理しているリストビューバインディングでアプリケーションを作成しました。そのため、データモデルはクラスライブラリにあります。拡張として、AvalonDockを使用してウィンドウを管理したいと考えました。例の後で、データをバインドする方法は、データモデルを介して行われ、データモデルはビューモデルから渡されます。だから私は、テキストボックスを削除し、私のリストビューを置くが、私はもはやリストビューアイテムのソースを使用してC#コードからリストビューにアクセスすることができないので、私はそれをデータテンプレートに入れた。だから、コンストラクタでは、フェストビューモデルの私は、リスト型の新しいインスタンスを作成し、値を割り当てるが、データはビューに来る。私はfestviewmodelを実行し、ViewModelで作成したリストのデータはビューにデータなしです。私はテキストブロックを作成し、コンストラクタの値を設定してビューに表示しますが、ListからListviewまでのデータは空です。WPFのビューモデルからデータテンプレートのリストビューをバインドする方法
<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;
}