gpt4 book ai didi

wpf - 使用 Caliburn 微约定在 DataTemplate 中绑定(bind) ViewModel 本身

转载 作者:行者123 更新时间:2023-12-03 10:16:31 26 4
gpt4 key购买 nike

我是 Caliburn.Micro 的新手,但我仍然没有得到一些东西。

View 模型优先:

首先是管理其他 ViewModel 集合的 ViewModel:

public class NavigationBarViewModel : PropertyChangedBase
{
public BindableCollection<IHaveDisplayName> Items { get; set; }
}

我有一个 ItemsControl(如果重要的话,它是 Telerik RadOutlookBar)作为 UserControl 的根

那个 View ,我也设置了 ItemTemplate 确保我插入到集合中的 ViewModel 被包装在相应的 RadOutlookBarItem 中(我应该在这里使用 ItemContainer 而不是 ItemTemplate 吗?)。
<telerik:RadOutlookBar x:Name="Items">
<telerik:RadOutlookBar.TitleTemplate>
<DataTemplate>
<ContentControl Content="{Binding Path=DisplayName}" />
</DataTemplate>
</telerik:RadOutlookBar.TitleTemplate>
<telerik:RadOutlookBar.ItemTemplate>
<DataTemplate>
<telerik:RadOutlookBarItem cal:Bind.Model="{Binding}"
Header="{Binding Path=DisplayName}">
<ContentControl />
</telerik:RadOutlookBarItem>
</DataTemplate>
</telerik:RadOutlookBar.ItemTemplate>
</telerik:RadOutlookBar>

这样,我不希望集合中的 ViewModel 出现在 ContentControl 所在的位置。我将模型绑定(bind)到 DataTemplate 的根项以确保约定有效,但不知道如何使用约定绑定(bind)到 ContentControl。 DataTemplate 中的 DataContext 当然是 ViewModel 本身。使用普通的 WPF 标准,我会输入 Content="{Binding}"。

现在模型在 RadOutlookBarItem 内,但它的 View 没有被应用。连 View 都找不到,只有一个带有类名的字符串。

这不是正确的方法吗?

最佳答案

正如我在这里回答的那样:Dynamic Telerik RadOutlookBar headers come out wrong with ItemTemplate我认为这是一个不相关的问题,我使用了错误的属性。 ItemTemplate 控制选择器和 contentTemplate 当您选择时出现的内容。这是有效的代码:

<telerik:RadOutlookBar x:Name="Items">
<telerik:RadOutlookBar.ContentTemplate>
<DataTemplate >
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</telerik:RadOutlookBar.ContentTemplate>
<telerik:RadOutlookBar.TitleTemplate>
<DataTemplate>
<TextBlock x:Name="DisplayName"
cal:Bind.Model="{Binding}" />
</DataTemplate>
</telerik:RadOutlookBar.TitleTemplate>
<telerik:RadOutlookBar.ItemTemplate>
<DataTemplate>
<TextBlock x:Name="DisplayName"
cal:Bind.Model="{Binding}" />
</DataTemplate>
</telerik:RadOutlookBar.ItemTemplate>
</telerik:RadOutlookBar>

关于wpf - 使用 Caliburn 微约定在 DataTemplate 中绑定(bind) ViewModel 本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com