0

ConsoleApp を開発している場合、別のファイル ([プロジェクト] メニュー --> [クラスの追加]) で作成したクラスをメインで使用しても問題はありません。しかし、後でWPFでやろうとすると、そのクラスが認識されません。名前空間が "MainWindow.xaml.cs" と Class Canal.cs の両方で同じであることを確認しました。同じクラスを MainWindow.xaml.csで定義すると、すべて正常に動作しますが、コードの拡張により、分離することをお勧めします。

MainWindow.xaml.cs:

//using      
 namespace Tcomp
    {
     public partial class MainWindow : Window
            {
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
                { //Stuff but I can't use class created outside of MainWindow.xaml.cs
}
}
}

Canal.cs

//using
    namespace TComp
    {
        public class Canal
        { //some propreties here
    }
    }

ありがとう。

4

3 に答える 3

0

Canal クラスをインスタンス化する必要があります。

var myClass = new Canal();

そして、そこからプロパティを使用できます。myClass を MainWindow.xaml.cs のプライベート メンバーにすると、いつでもアクセスできます。または 2 番目の方法として、Canal クラスを static にすると、どこからでもアクセスできるようになります。お役に立てれば。

于 2013-05-09T06:04:19.327 に答える
0

コンソール アプリではなく、ライブラリ プロジェクト内にクラスを作成します。そして、WPF プロジェクトで、作成したライブラリ プロジェクトへのプロジェクト参照を追加します。

于 2013-05-09T05:32:24.763 に答える
0

@mcxiand はすでにあなたの質問に答えています。別のオプションを追加したいと思います。

public partial class MainWindow : Window

コードを含む必要な数のファイルに追加するため、追加のクラス ライブラリを作成する必要はありません。ここでのキーワードは ですpartial。これにより、このクラスにカプセル化されたコードを複数のファイル (.cs) に分散させることができます。

于 2013-05-09T05:38:33.613 に答える