在Resource.XAML中列出并在ViewModel中访问

时间:2013-04-23 08:27:49

标签: list xaml viewmodel application-resource

如何在resources.xaml中创建一个列表(我将它用作我的列表框的itemsource)以及如何在ViewModel中访问它?感谢

1 个答案:

答案 0 :(得分:1)

这可能会有所帮助:Silverlight: Declaring a collection of data in XAML?

然后,您可以使用您声明集合的控件的Resources属性来访问它。

编辑例如:

您需要声明一个新的集合类型,因为您无法在XAML中声明泛型类型:

using System.Collections.Generic;

namespace YourNamepace
{
    public class Genders : List<string>
    {
    }
}

然后在添加必要的命名空间后在XAML中声明一个列表:

xmlns:local="clr-namespace:YourNamespace"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
<Window.Resources>
    <local:Genders x:Key="AvailableGenders">
        <sys:String>Female</sys:String>
        <sys:String>Male</sys:String>
    </local:Genders>
</Window.Resources>

你当然可以在里面用更复杂的数据结构来声明它。然后,将其用作ListBox的ItemsSource:

<ListBox ItemsSource="{Binding Source={StaticResource AvailableGenders}}"/>

有效,我刚刚对它进行了测试: - )