gpt4 book ai didi

xaml - 如何让多重绑定(bind)在 XAML ListBox 中工作?

转载 作者:行者123 更新时间:2023-12-04 07:09:41 24 4
gpt4 key购买 nike

下面显示了 ListBox 中的 3 个“MultiTest.Model.Customers”(应该显示的每条记录一个)。

为了让它输出字段的内容,我需要更改什么?

<Window.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContentTemplate" >
<Setter.Value>
<MultiBinding StringFormat="{}{1}, {0} ">
<Binding Path="FirstName" />
<Binding Path="LastName"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<ListBox x:Name="theCustomers"/>
</Grid>

使用 ADO.NET Entity Framework 在代码隐藏中绑定(bind):
MainEntities db = new MainEntities();
var customers = from c in db.CustomersSet
select c;
theCustomers.ItemsSource = customers;

回答:

谢谢,史蒂夫,这是我的 Window.Resources 格式的答案:
<Window.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{1}, {0} ({2})">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
<Binding Path="ID"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<ListBox x:Name="theCustomers"/>
</Grid>

最佳答案

如果您特别想使用 MultiBinding,您应该能够使用带有 StringFormat 的 DataTemplate .. 类似于:

<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{1}, {0}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>

或者对于更复杂的事情,您可以使用 ValueConverter (或多重绑定(bind)变体)。

关于xaml - 如何让多重绑定(bind)在 XAML ListBox 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577697/

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