C# 在WPF中使用类

C# 在WPF中使用类,c#,wpf,class,C#,Wpf,Class,当我开发ConsoleApp时,在我的Main中使用我在单独文件中创建的类(项目菜单-->添加类)没有问题。但后来,当我尝试在WPF中执行此操作时,该类未被识别。我已经确保名称空间在我的“MainWindow.xaml.cs”和我的类Canal.cs中是相同的。当我在MainWindow.xaml.cs中定义相同的类时,一切都很好,但由于代码的扩展,我更喜欢将其分开 MainWindow.xaml.cs: //using namespace Tcomp { pub

当我开发ConsoleApp时,在我的Main中使用我在单独文件中创建的类(项目菜单-->添加类)没有问题。但后来,当我尝试在WPF中执行此操作时,该类未被识别。我已经确保名称空间在我的“MainWindow.xaml.cs”和我的类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
    }
    }

谢谢。

在库项目内而不是在控制台应用程序上创建类。在您的WPF项目中,向您创建的库项目添加项目引用。

@mcxind已经回答了您的问题。我想添加另一个选项:您可以使用

public partial class MainWindow : Window

并将其添加到包含代码的任意多个文件中,这样就不需要创建额外的类库。这里的关键字是
partial
,它允许封装在此类中的代码扩展到多个文件(.cs)。

您必须实例化Canal类:

var myClass = new Canal();

然后你可以使用它的属性。使myClass成为MainWindow.xaml.cs的私有成员,您可以随时访问它。或者第二种方法,将Canal类设置为静态,然后您可以从任何地方访问它。希望这有帮助。

一些代码来解释这一点。请提供一些代码来说明您在WPF中是如何做到这一点的。我已经在使用sintaxis(默认btw),并且我已经尝试将单词partial放在myClass.cs中,但仍然无法在MainWindow.xaml.cs中使用它。我的意图是使用在MainWindow中分离的类文件(.cs)中创建的代码,这有点像反面OK,然后添加“使用TComp;”以访问其公共类的属性/方法。这是一种非常糟糕的方法。运河班的学生不必知道窗户。并不是所有的类都是视图类。好的,我已经解决了这个问题,问题是我从控制台PP复制了这个类的代码,然后将它粘贴到WPF程序中创建的类中。内部出了点问题,我无法通过这门课。在创建了一个完整的新项目并仔细地包含代码之后,我终于成功了。谢谢大家的帮助。我已经在WPF项目中创建了这个类,ConsoleApp只是为了表明如果我这样做的话它是有效的,而不是在WPF中。可能是因为MainWindow.xaml.cs在MainWindow.xaml中?正如我在回答中所解释的,您可以将该属性放在公共部分类MainWindow中;在这种情况下,您不需要创建额外的类/名称空间。也许我的无知使我失明,但我仍然无法获得它。由于辅助类中代码的扩展,我希望能够管理与主窗口分离的代码(我将在主窗口外部调用创建的类)。