簡體   English   中英

xaml c#中的可觀察集合靜態資源

[英]observable collection static resource in xaml c#

我想創建一個可觀察的集合並將其綁定到組合框下拉列表的 itemsource。 我需要將此集合設為資源(頁面/網格),以便能夠在數據模板內綁定到它。 在定義類結構時需要幫助。 示例類結構將真正有幫助。 收集非常簡單,例如所有國家的列表。 重要的要求是我應該能夠向其中添加項目。 基本上是一個包含國家(字符串)的集合,允許我添加項目。

xaml c#中的可觀察集合靜態資源

對於此要求,您可以在代碼隱藏中創建自定義ObservableCollection類,然后在 xaml 中實現它。

例如:

public class CountrysObservableCollection : ObservableCollection<string>
{

    public CountrysObservableCollection()
    {

    }
}

xml

<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>

用法

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

更新數據源

private  void Button_Click(object sender, RoutedEventArgs e)
{
    var countrys = Resources["Countrys"] as ObservableCollection<string>;
    countrys.Add("New World");
}

更新

<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");
 }

網絡上有大量示例。 這是一個簡單的: 解釋組合框綁定在 MVVM - WPF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM