c#多重文件变量访问

本文关键字:变量 访问 文件 | 更新日期: 2023-09-27 18:03:16

我正在尝试创建一个使用手机摄像头拍照的c#程序,但我需要手机摄像头的ip,所以我使用表单文本字段和按钮。当我点击按钮ipAddres字符串必须更改为文本框中的新值,但我不能在form .cs文件中使用该字符串。请帮助!

这是我的程序。cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace test
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            String IpAddres;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

这是form。cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void sendIpAddres(object sender, EventArgs e)
        {
            //!There I want to give the new value to ipAddres!
        }
    }
}

c#多重文件变量访问

您可以为DataContext定义ViewModel类。每当你在视图(xaml文件)中使用控件时,你可以绑定例如,你的TextBoxViewModel的属性,所以根本不需要编写任何代码(这是不好的做法-在这种情况下使用MVVM框架:https://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx)。

所以如果我理解得好,你可以使用下面的例子(后面有代码):

主窗口

public partial class MainWindow : Window
{
    private ViewModel localDataContext;
    public MainWindow()
    {
        InitializeComponent();
        var myViewModel = new ViewModel();
        DataContext = myViewModel;
        localDataContext = (ViewModel) DataContext;
    }
    private void sendIpAddres(object sender, EventArgs e)
    {
        MyTextBox.Text = localDataContext.ipAddress;
    }
}

ViewModel.cs

public class ViewModel
{
    public string ipAddress { get; set; }
    // do whatever you want with your ipAddress
}

UPDATE (using binding)

MainWindow.xaml

<TextBox x:Name="MyTextBox" Text="{Binding ipAddress, Mode=TwoWay}" Margin="0,0,434,302"/>