2012-05-25 36 views
0

我有一个字符串的集合,在C#MAINWINDOW.xaml.cs这样WPF创建列表

public class NameList : ObservableCollection<Shortcuts> 
     { 
      public NameList()  : base() 
      { 
       Add(new Shortcuts("ctrl", "b","s")); 
       Add(new Shortcuts("ctrl", "b","m")); 
       Add(new Shortcuts("ctrl", "b","p")); 
       Add(new Shortcuts("ctrl", "b","1")); 
      } 
     } 

     public class Shortcuts 
     { 
      private string firstkey; 
      private string secondkey; 
      private string lastkey; 

      public Shortcuts(string first, string second, string last) 
      { 
       this.firstkey = first; 
       this.secondkey = second; 
       this.lastkey= last; 
      } 

      public string Firstkey 
      { 
       get { return firstkey; } 
       set { firstkey = value; } 
      } 

      public string Secondkey 
      { 
       get { return secondkey; } 
       set { secondkey = value; } 
      } 

      public string Lastkey 
      { 
       get { return lastkey; } 
       set { lastkey = value; } 
      } 
     } 
    } 

然后在MainWindow.xaml本身我有一个组合框,我想结合这些项目的组合框所以这是我做过什么

<Window x:Class="Testing_learning.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:c="clr-namespace:Testing_learning" 
     Title="Outlook Context Settings" Height="350" Width="525"> 
    <Window.Resources> 
     <c:ListName Key ="NameListData"/> 

    </Window.Resources> 

哦BTW项目名称为Testing_learning这就是为什么有这个

xmlns:c="clr-namespace:Testing_learning" 

但问题是,当我加入这行代码

<Window.Resources> 
     <c:ListName Key ="NameListData"/> 

     </Window.Resources> 

我会在c。将错误:LISTNAME类型LISTNAME未发现这是为什么? 有什么想法?

截图1 enter image description here

截图2 enter image description here

+0

尝试c中的问题:NameList中? –

+0

哇,这是如此不成熟的我,但同样的问题,即使我改变它 ...更多的下拉给我'应用程序',当我按c:我的选项得到。 – JackyBoi

回答

1

你有一个更错字:Key必须x:Key

<Window.Resources> 
    <c:NameList x:Key="NameListData" /> 
</Window.Resources> 

,并已在主窗口类的嵌套类。将它移出:

namespace Testing_learning 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
    } 

    public class NameList : ObservableCollection<Shortcuts> 
    { 
     ... 
    } 

    public class Shortcuts 
    { 
     ... 
    } 
} 
+0

仍然是一样的事情,请参阅附件截图。 – JackyBoi

+0

认识到它是嵌套的..(轻拍自己的头..很难!) – JackyBoi

2

这似乎是一个错字?你的C#有NameList,但你的XAML有ListName。

+0

哇,这是如此不成熟的我,但同样的问题,即使我改变它 ...更多的下拉列表给我'应用程序',当我按c:选项,我得到。 – JackyBoi

2

您的类定义:

public class NameList : ObservableCollection<Shortcuts> 
    { 
    //[…] 

XAML中:

<c:ListName Key ="NameListData"/> 

NameListListName不同。由于您没有ListName类,因此您会看到“未找到ListName”错误。

+0

哇,这是如此不成熟的我,但同样的问题,即使我改变它 ...更多的下拉列表给我'应用程序',当我按c:选项,我得到。 – JackyBoi

0

当我将两个类移动到单独的文件时它就起作用了。

编辑:

大厦还修复即使类是MainWindow.xaml

enter image description here

+0

我也想到了,但仍然是同样的事情,为什么这样呢? – JackyBoi

+0

我在这里关注这个教程http://msdn.microsoft.com/en-us/library/ms668604.aspx – JackyBoi

+0

什么不工作?它对我来说工作得很好,并添加一个项目模板的作品 –