Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将WPF GUI(按钮等)连接到类的方法?_C#_Wpf_Visual Studio_Xaml_User Interface - Fatal编程技术网

C# 如何将WPF GUI(按钮等)连接到类的方法?

C# 如何将WPF GUI(按钮等)连接到类的方法?,c#,wpf,visual-studio,xaml,user-interface,C#,Wpf,Visual Studio,Xaml,User Interface,我有一些初学者的问题 假设我想创建一个程序,它有一个类Ford,里面除了一个名为Color的string类型的属性之外没有其他内容 现在,我想单击位于主窗口中的一个按钮,该按钮将该类的某个实例的属性Color设置为“blue”。还有一个文本框显示当前颜色 我想设置一个类Ford的对象的属性,该对象以前是通过 Ford fordFocus = new Ford(); 我的问题是-只要我写focus,VisualStudio就会立即在focus下添加一条红色的卷线。在我看来,这个物体好像没有被创

我有一些初学者的问题

假设我想创建一个程序,它有一个类
Ford
,里面除了一个名为
Color
string
类型的属性之外没有其他内容

现在,我想单击位于主窗口中的一个按钮,该按钮将该类的某个实例的属性
Color
设置为
“blue”
。还有一个文本框显示当前颜色

我想设置一个类
Ford
的对象的属性,该对象以前是通过

Ford fordFocus = new Ford(); 
我的问题是-只要我写
focus
,VisualStudio就会立即在
focus
下添加一条红色的卷线。在我看来,这个物体好像没有被创造出来或者看不见,超出了范围,我不知道

换句话说,我知道如何创建一个使用控制台进行输入和输出的程序,但我无法理解如何使用WPF GUI而不是控制台创建或多或少相同的东西。我的福特示例可能不好,如果是这样,请忽略它,并用其他方式解释它

其所有WPF模板VisualStudio 2015,MainWindow.cs:

public partial class MainWindow : Window
{
    public MainWindow()
    {

        InitializeComponent();
        Ford focus = new Ford();
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        focus.Color = "Sky blue";
    }

}
福特车内有什么:

private string _color;
public string Color
{
    get { return _color; }
    set { _color = value; }
}

谢谢。

问题似乎是,您在
主窗口的构造函数中声明了
focus
,但尝试在另一个方法中使用它-这意味着
focus
是在另一个范围中定义的

您可以在主窗口中添加一个字段,以便从构造函数和方法中访问该字段

public partial class MainWindow : Window
{
  // -- DECLARE focus HERE
  private Ford focus;
  public MainWindow()
  {
    InitializeComponent();
    // --- focus can be CREATED HERE --- 
    this.focus = new Ford();
  }

  private void button_Click(object sender, RoutedEventArgs e)
  {
    // -- Now you can USE focus HERE --
    this.focus.Color = "Sky blue";
  }
}

您可以在

上找到一些关于作用域的有用信息问题似乎是,您在
主窗口的构造函数中声明了
focus
,但尝试在另一个方法中使用它-这意味着
focus
是在另一个作用域中定义的

您可以在主窗口中添加一个字段,以便从构造函数和方法中访问该字段

public partial class MainWindow : Window
{
  // -- DECLARE focus HERE
  private Ford focus;
  public MainWindow()
  {
    InitializeComponent();
    // --- focus can be CREATED HERE --- 
    this.focus = new Ford();
  }

  private void button_Click(object sender, RoutedEventArgs e)
  {
    // -- Now you can USE focus HERE --
    this.focus.Color = "Sky blue";
  }
}

您可以在

上找到一些关于作用域的有用信息,您需要用代码更新您的问题。我们很难猜出你在哪里被卡住了。我们能看看你的GUI或你做的任何事情吗;来自app.cs,并放置在包含按钮的窗口类的顶部,它将在范围内。我问你迄今为止做了什么的原因是。你的问题刚刚越过我的头,特别是福特Stuff我仍然不明白你在做什么,请你简要解释一下你想要什么。你想要我做什么要从这个()中提取[ScreenShot],你需要用代码更新你的问题。我们很难猜测你在哪里卡住了。我们可以看看你的GUI或你做过的任何事情吗;来自app.cs,并放置在包含按钮的窗口类的顶部,它将在范围内。我问你迄今为止做了什么的原因是。你的问题刚刚越过我的头,特别是福特Stuff我仍然不明白你在做什么,请你简要解释一下你想要什么。你想要我做什么从中提取()[屏幕截图]谢谢!现在可以了。我基本上是C#的初学者,尤其是GUI。如果我想创建一个超出范围并在程序结束时被破坏的对象,我应该在这个地方创建它。是吗?谢谢!现在可以了。我基本上是C#的初学者,尤其是GUI。如果我想创建一个超出范围并被破坏的对象在程序结束时,我应该在这里创建它是吗?