【问题标题】:Indirect binding to child collections in XAML间接绑定到 XAML 中的子集合
【发布时间】:2010-11-19 11:20:48
【问题描述】:

我目前正在使用带有 SubSonic3 的 Linq 模板来创建我的模型。我有一个简单的成员类,它有一个注释集合。 Note 类具有 PublishedDate 和 Title 属性。

我有一个 UserControl,它有一组成员的 DataContext。上面有两个ListBoxes 和一堆TextBoxes 和其他控件。第一个ListBox (membersList) 从UserControl DataContext 中获取其ItemsSource,并在每个项目中显示一些Member 属性。我希望第二个 ListBox (notesList) 显示在第一个 ListBox 中选择的成员的 Notes 集合。

目前在 notesList 上我有:

<ListBox ... ItemsSource="{Binding Notes}"...>
    <DataTemplate>
        <TextBox Text="{Binding Title}"/>
    </DataTemplate>

它部分有效。当我选择一个有注释项目的成员时,notesListBox 中的项目数量是正确的,但这仅在交替的行颜色中可见 - 没有别的! DataTemplate 无法呈现注释的标题。基本上ListBox 和ListBoxItem 中的所有视觉样式都有效——交替颜色、选择边框、鼠标悬停等,但内容没有显示。我感觉问题出在我的 Binding 语法上,但我不知道出了什么问题。

任何建议将不胜感激。

干杯, 丹妮。

【问题讨论】:

    标签: data-binding xaml collections subsonic3 master-detail


    【解决方案1】:

    确保您的模板包含ContentPresenter。听起来您在模板化列表框时可能忽略了这一点。

    忽略这一点可能会导致您遇到的行为 - 完整的模板,但没有“内容”,因为它没有地方放置应该放入每个列表框项目的实际项目。

    【讨论】:

    • 嗨 Reed,感谢您的快速回复。是的,我已经在控件模板中有一个 ContentPresenter。 membersList 和 notesList 的 ControlTemplates 是相同的 - 唯一的区别是 DataTemplates。 membersList ListBox 显示得非常好,唯一有问题的是 notesListBox。
    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多