2016-06-17 1 views
0

リスト内のどのステップを参照できるように、アプリケーションのキー値を表示する必要があります。だから私はitemscontrolと一緒に行くための最良の選択となると思いました。それはうまくいかなかった。バインディングはまったく機能しないようです。私は私の問題にマッチするGoogleのソリューションを見つけられませんでした。すべてのソリューションで一般的なバインディングが機能するようです...WPFバインディングディクショナリのItemsControlが機能しません

バインディングが正常に動作することを示すために次のコードがあります。DataGrid

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding WizardSteps}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding Key}" Header="Key" /> 
     <DataGridTextColumn Binding="{Binding Value}" Header="Value"/> 
    </DataGrid.Columns> 
</DataGrid> 
<ListView ItemsSource="{Binding WizardSteps}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Key}"></TextBlock> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

しかし、このコードは(商品)を動作しません:とリストビュー、両方が正常に動作

<ItemsControl ItemsSource="{Binding WizardSteps}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Key}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

のC#:

public Dictionary<string, PageViewModelBase> WizardSteps { get; set; } = 
    new Dictionary<string, PageViewModelBase>(); 

private void _CreateWizardSteps() 
{ 
    CreateWizardStepsSpecific(WizardSteps); 
    WizardSteps.Add("Report", new ReportStepViewModel<ReportView>()); 
    WizardSteps.Add("Report1", new ReportStepViewModel<ReportView>()); 
    NotifyOfPropertyChange(() => WizardSteps); 
} 
を210

私はこれを私に説明することはできません、itemscontrolはlistviewと同じように動作しませんか?

+0

C#コードはどのクラスに属していますか?それはあなたのウィンドウのコード部分ですか? –

+0

@ stop-cranいいえ、それはユーザーコントロールのデータコンテキストです –

+0

@ViViデータガードは正常に動作しますが、唯一の問題は項目が表示されないitemscontrolです。 –

答えて

0

解決策が見つかりました。私はObservableDictionaryを通常のものの代わりに使用しなければならなかった。なぜそれがDataGridとListViewで動作するのか説明しませんが、ポイントは私がそれを解決したことです:) 私を助けてくれたすべての人に感謝します。

+0

可能な説明はタイミングです。 ListViewとDataGridのバインディングは、ItemsControlのバインディングよりも後で作成される可能性があります。つまり、_CreateWizardSteps()が呼び出された後です。 _CreateWizardSteps()が起動時に一度だけ呼び出される場合は、おそらく_CreateWizardSteps()を呼び出した後でDataContextを設定するだけです。 – Clemens

関連する問題