0

私はこのようなC#MAINWINDOW.xaml.csに文字列のコレクションを持っています

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>

ところで、プロジェクト名はTesting_learningであるため、これがあります

xmlns:c="clr-namespace:Testing_learning"

しかし、問題は、このコード行を追加すると

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

        </Window.Resources>

c:ListNameでエラーが発生します。タイプListNameが見つかりませんでした。これはなぜですか。何かご意見は?

スクリーンショット1 ここに画像の説明を入力してください

スクリーンショット2 ここに画像の説明を入力してください

4

4 に答える 4

2

タイプミスのようですか?C#にはNameListがありますが、XAMLにはListNameがあります。

于 2012-05-25T14:44:39.810 に答える
2

クラス定義:

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

あなたのxaml:

<c:ListName Key ="NameListData"/>

NameListとは異なりListNameます。クラスがないためListName、「ListNameが見つかりませんでした」というエラーが表示されます。

于 2012-05-25T14:45:27.763 に答える
1

もう1つタイプミスKeyがあります。x:Key

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

そして、MainWindowクラスにクラスをネストしました。それを移動します:

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

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

    public class Shortcuts
    {
        ...
    }
}
于 2012-05-25T21:52:36.913 に答える
0

2つのクラスを別々のファイルに移動すると、機能しました。

編集:

クラスがMainWindow.xamlにある場合でも、ビルドによって問題が修正されます

ここに画像の説明を入力してください

于 2012-05-26T07:23:57.827 に答える