【问题标题】:DataTemplate doesn't seem to be bindingDataTemplate 似乎没有绑定
【发布时间】:2015-08-26 09:09:48
【问题描述】:

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

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

通过直接绑定到 ItemsSource 中项目对象的成员,我可以看到我正在正确加载列表框。事实上,“显示”成员只是我想使用 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)。

【问题讨论】:

    标签: wpf xaml datatemplate itemssource


    【解决方案1】:

    您没有将TextTextBlock 绑定到任何东西。试试这样的:

    <TextBlock HorizontalAlignment="Left" 
               TextWrapping="Wrap" 
               VerticalAlignment="Top" 
               Grid.Column="1" 
               Text="{Binding DevDisplay}" />
    

    仅供参考,DataTemplateDataContext 会自动设置为其绑定的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-29
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2011-10-01
      • 2023-03-26
      相关资源
      最近更新 更多