C# 在innerclass中设置WPF文本框值

C# 在innerclass中设置WPF文本框值,c#,wpf,wcf,C#,Wpf,Wcf,这可能是一个有点愚蠢的问题,但我不是一个有经验的程序员 我正在使用WCF和WPF来创建一个带有GUI的聊天室。我的问题是,我想使用callbackhandler设置包含传入消息的文本框的值。因为这是一个内部类,所以我不能调用textbox。有人知道这个问题的解决办法吗 namespace WPFClient public partial class MainWindow : Window { Service1Client s; public MainWindow() {

这可能是一个有点愚蠢的问题,但我不是一个有经验的程序员

我正在使用WCF和WPF来创建一个带有GUI的聊天室。我的问题是,我想使用callbackhandler设置包含传入消息的文本框的值。因为这是一个内部类,所以我不能调用textbox。有人知道这个问题的解决办法吗

namespace WPFClient

public partial class MainWindow : Window
{
    Service1Client s;
    public MainWindow()
    {
        InitializeComponent();
        InstanceContext site = new InstanceContext(new CallbackHandler());
        s = new Service1Client(site);
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Message m = new Message();
        m.Content = txtMessage.Text;
        m.User = txtName.Text;
        s.SendMessage(m);
    }

    public class CallbackHandler : IService1Callback
    {
        public void SendMessageToClients(Message m)
        {

            //I would like to call an alrdy generated textbox here to set its value, like txtMessageAll.Text("Setting text");
        }
    }
}
}


谢谢

由于CallbackHandler是一个自定义类,因此在创建对象时,可以通过参数化构造函数将文本框从MainWindow传递到此类。在传递引用时,您还可以通过回调处理程序类更改该文本框的文本

 public class CallbackHandler 
    {
        public TextBox textValue { get; set; }

        CallbackHandler(TextBox tb) {

            this.textValue = tb;

        }
        public void SendMessageToClients(Message m)
        {
            this.textValue.Text="some_message";
            //I would like to call an alrdy generated textbox here to set its value, like txtMessageAll.Text("Setting text");
        }
    }
从你的主窗口类

InstanceContext site = new InstanceContext(new CallbackHandler(txtboxMessageAll));

其中“txtboxMessageAll”是Xaml页面中已经存在的文本框

由于CallbackHandler是一个自定义类,因此在创建对象时,可以通过参数化构造函数将文本框从MainWindow传递到此类。在传递引用时,您还可以通过回调处理程序类更改该文本框的文本

 public class CallbackHandler 
    {
        public TextBox textValue { get; set; }

        CallbackHandler(TextBox tb) {

            this.textValue = tb;

        }
        public void SendMessageToClients(Message m)
        {
            this.textValue.Text="some_message";
            //I would like to call an alrdy generated textbox here to set its value, like txtMessageAll.Text("Setting text");
        }
    }
从你的主窗口类

InstanceContext site = new InstanceContext(new CallbackHandler(txtboxMessageAll));
其中“txtboxMessageAll”是Xaml页面中已经存在的文本框