我想创建一个可观察的集合并将其绑定到组合框下拉列表的项目源。我需要将此集合作为资源(页面/网格),以便能够在数据模板内绑定到它。
需要帮助定义类结构。示例类结构确实会有帮助。收集非常简单,例如所有国家的列表。重要的要求是我应该能够向其中添加项目。
基本上是一个包含国家/地区(字符串)的集合,允许我添加项目。
xaml c# 中的可观察集合静态资源
对于这个需求,你可以定制可观察集合 https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=netcore-3.1类在代码隐藏中,然后在xaml中实现它。
例如:
public class CountrysObservableCollection : ObservableCollection<string>
{
public CountrysObservableCollection()
{
}
}
Xaml
<Page.Resources>
<local:CountrysObservableCollection x:Key="Countrys">
<x:String>China</x:String>
<x:String>USA</x:String>
<x:String>Japan</x:String>
<x:String>England</x:String>
<x:String>Russia</x:String>
<x:String>Korea</x:String>
<x:String>Canada</x:String>
<x:String>Australia</x:String>
</local:CountrysObservableCollection>
</Page.Resources>
Usage
<ComboBox ItemsSource="{StaticResource Countrys}"/>
更新数据源
private void Button_Click(object sender, RoutedEventArgs e)
{
var countrys = Resources["Countrys"] as ObservableCollection<string>;
countrys.Add("New World");
}
update
<Application.Resources>
<ResourceDictionary>
<local:CountrysObservableCollection x:Key="Countrys">
<x:String>China</x:String>
<x:String>USA</x:String>
<x:String>Japan</x:String>
<x:String>England</x:String>
<x:String>Russia</x:String>
<x:String>Korea</x:String>
<x:String>Canada</x:String>
<x:String>Australia</x:String>
</local:CountrysObservableCollection>
</ResourceDictionary>
</Application.Resources>
private void Button_Click(object sender, RoutedEventArgs e)
{
var countrys = Application.Current.Resources["Countrys"]as ObservableCollection<string>;
countrys.Add("New World");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)