gpt4 book ai didi

c# - 是否可以使 List 成为 xaml 中的静态资源?

转载 作者:可可西里 更新时间:2023-11-01 08:14:12 25 4
gpt4 key购买 nike

如果我想在代码隐藏中绑定(bind)组合框之类的东西,我完全没有问题。像这样的东西:

List<string> strings = new List<string>();
AddStringsFromDataSourceToList(strings);

comboBox1.ItemSource = strings;

据我所知,在 XAML 中没有快速而肮脏的方法来执行此操作。对于 wpf 因其 super 简单的数据绑定(bind)而获得的所有赞誉,在 C# 中完成这种简单的事情似乎要容易得多。有没有比创建 DependencyProperty 包装器并将它们添加为资源更简单的方法,而无需 intellisense 或所有进入 ObservableCollections 的帮助?我明白这并非不可能,但如果这样一个简单的任务看起来如此深入,我一定错过了一些东西......

编辑:澄清一下,添加动态列表是这里的问题,而不是静态数组。正如许多人指出的那样,手动添加项目非常容易。

最佳答案

<Window.Resources>
<x:Array x:Key="strings" Type="sys:String"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String>One</sys:String>
<sys:String>Two</sys:String>
</x:Array>
<!-- likewise -->
<x:Array x:Key="persons" Type="{x:Type local:Person}"
xmlns:local="clr-namespace:namespace-where-person-is-defined">
<local:Person FirstName="Sarfaraz" LastName="Nawaz"/>
<local:Person FirstName="Prof" LastName="Plum"/>
</x:Array>
<Window.Resources>


<ComboBox ItemsSource="{StaticResource strings}" />

<ListBox ItemsSource="{StaticResource persons}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding FirstName}"/>
<Run Text=" "/>
<Run Text="{Binding LastName}"/>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

关于c# - 是否可以使 List<string> 成为 xaml 中的静态资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739357/

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