DataTemplate似乎没有绑定

时间:2015-06-10 21:40:43

标签: wpf xaml datatemplate itemssource

我正在使用绑定模型中的项填充ListBox。在测试时我有这个:

<ListBox x:Name="SettingsHolder" Margin="5,8,5,5" ItemsSource="{Binding AllSettingItems}" Height="380" DisplayMemberPath="Display"/>

通过直接绑定到ItemsSource中的项目对象的成员,我能够看到我正在正确加载列表框。实际上,'Display'成员只是我想使用DataTemplate显示的成员的String.Format。一切都很好。定义模板应该没什么大不了的吧?

所以,然后我定义了我的数据模板。

    <Window.Resources>
    <DataTemplate x:Key="AllSettingsItemTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="140*"/>
                <ColumnDefinition Width="16"/>
                <ColumnDefinition Width="16"/>
                <ColumnDefinition Width="16"/>
            </Grid.ColumnDefinitions>
            <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" DataContext="{Binding Key}"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Column="1" DataContext="{Binding DevDisplay}"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Column="2" DataContext="{Binding CertDisplay}"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Column="3" DataContext="{Binding ProdDisplay}"/>
        </Grid>
    </DataTemplate>
</Window.Resources>

我删除了DisplayMemberPath。

我替换了:

ItemTemplate="{DynamicResource AllSettingsItemTemplate}"

现在,没有显示任何值。我可以通过滚动条的外观以及AllSettingsItem值被绑定的可选成员来判断,因为我得到了可选项的正确NUMBER,但没有显示任何内容。就好像没有发生对项目成员(Key,DevDisplay等)的绑定,或者如果它正在发生,它就没有被渲染。

我在数据模板绑定中尝试过Path = Key。这是在黑暗中拍摄的。 。 。

秘密是什么?你怎么调试这样的东西?

(我正在使用Blend和VS2013)。

1 个答案:

答案 0 :(得分:2)

您未将Text的{​​{1}}绑定到任何内容。尝试这样的事情:

TextBlock

仅供参考,<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Column="1" Text="{Binding DevDisplay}" /> &#39; s DataTemplate会自动设置为与其绑定的项目。