数据绑定枚举 - 命名空间中不存在名称“StoreLocation”

时间:2015-06-10 21:18:43

标签: c# wpf enums wpfdatagrid

我收到了一个错误:

  

命名空间“StoreLocation”在命名空间“clr-namespace:System.Security.Cryptography.X509Certificates; assembly = mscorlib”

中不存在

在线:

<x:Type TypeName="crypto:StoreLocation" />

我做错了什么?

<UserControl x:Class="Admin.Certificates"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:Admin"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:crypto="clr-namespace:System.Security.Cryptography.X509Certificates;assembly=mscorlib">

<UserControl.DataContext>
    <local:CertificatesViewModel />
</UserControl.DataContext>

<UserControl.Resources>
    <ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="GetEnumValues">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="crypto:StoreLocation" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</UserControl.Resources>

<Grid>
    <DataGrid ItemsSource="{Binding Certificates}" AutoGenerateColumns="False">
       <DataGrid.Columns>
            <DataGridComboBoxColumn Header="StoreLocation"                   
                ItemsSource="{Binding Source={StaticResource GetEnumValues}}"
                SelectedValueBinding="{Binding StoreLocationValue}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</UserControl>

2 个答案:

答案 0 :(得分:2)

尝试:

xmlns:crypto="clr-namespace:System.Security.Cryptography.X509Certificates;assembly=System"

答案 1 :(得分:0)

我知道这可能有点晚了,但对于那些想知道这个的捷径的人,在输入

之后
xmlns:crypto="

开始输入

using

然后粘贴命名空间(在VS中的类名上按F12并复制命名空间),从该位置开始,然后按

  

ctrl + spacebar

Visual Studio将为您输入正确的clr类型。