WPF 将字典绑定到项控件不起作用



我需要在应用程序中显示字典的键值,以便您查看列表的哪个步骤。因此,我认为项目control将是最佳选择。效果不佳。装订似乎根本不起作用。我在Google上还没有找到与我的问题相匹配的任何解决方案,总的来说,一般绑定似乎有效...

我有以下代码,以证明绑定应正确工作,我尝试使用datagrid和listView,两个都可以正常工作:

<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);
}

我无法向我解释这个问题,该项目不应该以与listView相同的方式工作吗?

找到了解决方案。我不得不使用观察力,而不是普通的。没有向我解释为什么它可以与DataGrid和listView一起使用,但要点是我解决了:)感谢所有帮助我的人。

最新更新