gpt4 book ai didi

c# - 根据数据将多个Datatemplates应用到listbox Itemtemplate

转载 作者:太空狗 更新时间:2023-10-29 23:14:51 26 4
gpt4 key购买 nike

我确信这很简单,但我似乎无法弄清楚如何去做。基本上我有一个来自 azure 移动服务数据库的客户列表。到目前为止一切正常,但我想根据数据为列表框中的每个项目设置项目模板。我有 2 个模板,一个用于公司,一个用于个人。我的问题是如何应用每一个。

模板

<DataTemplate x:Key="CompanyItemTemplate">
-------
</DataTemplate>

<DataTemplate x:Key="CustomerItemTemplate">
-------
</DataTemplate>

代码

CustomerListItems.ItemsSource = customeritems.OrderBy(customer => customer.CustomerName);

foreach (Customers customer in customeritems)
{
if (customer.Company != "")
{
CustomerListItems.ItemTemplate = CompanyItemTemplate;
}
else
{
CustomerListItems.ItemTemplate = CustomerItemTemplate;
}
}

最佳答案

您可以使用 DataTemplateSelector根据绑定(bind)到您的属性的数据动态选择 DataTemplate:

示例代码:

public class ImgStringTemplateSelector : DataTemplateSelector
{
public DataTemplate ImageTemplate { get; set; }
public DataTemplate StringTemplate { get; set; }

public override DataTemplate SelectTemplate(object item,
DependencyObject container)
{
String path = (string)item;
String ext = System.IO.Path.GetExtension(path);
if (System.IO.File.Exists(path) && ext == ".jpg")
return ImageTemplate;
return StringTemplate;
}
}

<Window.Resources>
<local:RelativeToAbsolutePathConverter x:Key="relToAbsPathConverter" />

<DataTemplate x:Key="stringTemplate">
<TextBlock Text="{Binding}"/>
</DataTemplate>

<DataTemplate x:Key="imageTemplate">
<Image Source="{Binding Converter={StaticResource relToAbsPathConverter}}"
Stretch="UniformToFill" Width="200"/>
</DataTemplate>

<local:ImgStringTemplateSelector
ImageTemplate="{StaticResource imageTemplate}"
StringTemplate="{StaticResource stringTemplate}"
x:Key="imgStringTemplateSelector" />
</Window.Resources>

<Grid>
<ListView ScrollViewer.CanContentScroll="False"
ItemsSource="{Binding ElementName=This, Path=PathCollection}"
ItemTemplateSelector="{StaticResource imgStringTemplateSelector}">
</ListView>
</Grid>
</Window>

关于c# - 根据数据将多个Datatemplates应用到listbox Itemtemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422629/

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