gpt4 book ai didi

c# - 绑定(bind)到相关(详细)集合中第一项的属性

转载 作者:行者123 更新时间:2023-11-30 16:08:26 25 4
gpt4 key购买 nike

类似于WPF: How to bind to only one item in a collection, not using ItemsControl since I don't want to display all of them , 除了集合与主要绑定(bind)项目相关。所有数据都通过 EntityFramework 传入。与链接的问题一样,xaml 对其进行了最好的解释:

<StackPanel Grid.Row="1" Orientation="Horizontal" DataContext="{Binding CurrentCustomer}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Total Orders:" />
<TextBlock Text="{Binding Orders.Count}" />
</StackPanel >

<StackPanel Orientation="Horizontal">
<TextBlock Text="First Order:" />
<TextBlock Text="{Binding Orders.First.OrderDate}" />
</StackPanel >
</StackPanel>

如您所见,我猜想因为我可以使用“Orders.Count”获得相关订单的计数,所以我尝试使用相同的 linq 语法来尝试检索 Orders.First(我还尝试了 Orders.FirstOrDefault ),但这不起作用。

查看链接的问题,我尝试了 Sheridan '[]' 语法,但 Orders[0].OrderDate 给出输出错误:System.Windows.Data Error: 40 : BindingExpression path error: '[]' property not found on 'object' ''HashSet'1' (HashCode=37425772)'. BindingExpression:Path=Orders[0].OrderDate; DataItem='Customer_<BigLongIdentityString>' (HashCode=21972018); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') .

查看他链接到的 msdn 文章,我尝试将表达式括在方括号中(根据附加属性)并使用斜线(至于当源是集合时)。不出所料,这些也失败了。

谁能告诉我如何获得相关集合中第一项的属性?

最佳答案

如果可能,您始终可以向您的模型添加一个新属性来公开第一项:

public Order FirstItem 
{
get { return this.Orders.First(); }
}

然后,您可以绑定(bind)到该新属性。

此外,this answer is highly relevant .在这里,哈希集可能不太合适。没有索引器。我通常坚持使用 ObservableCollections。

此外,关于与数据绑定(bind)兼容的 EF 生成,请查看 this MSDN article .阅读名为

的部分

Updating code generation for data binding

根据文章,您可以弄乱 T4 模板,

Find and replace the first occurrence of “HashSet” with “ObservableCollection”.

WPF 快乐。

关于c# - 绑定(bind)到相关(详细)集合中第一项的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29247625/

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