Textbox IsEnabled属性在另一个类uwp中不起作用

时间:2018-01-09 10:51:33

标签: c# xaml uwp uwp-xaml

我正在制作UWP app.I在一个类中的xaml代码中有一个TextBox。我在其属性中给了x:FieldModifier=public,以便它可以在课外访问。我想在另一个类中使用,当切换开关打开时,它应该启用。 所以,我正在制作类的对象并使用这样的方法 fnp.text.IsEnabled=true fnp是类的对象,text是文本框的名称。但它没有开火。 我该怎么做?

    firstnavigatepage fnp = new firstnavigatepage();
    public peoplechatting()
    {
        this.InitializeComponent();
    }
public  void MyToggle_Toggled(object sender, RoutedEventArgs e)
    {

        ToggleSwitch toggleSwitch = sender as ToggleSwitch;
        if (toggleSwitch != null)
        {
            if (toggleSwitch.IsOn == true)
            {

                MyEllipse.Fill = new SolidColorBrush(Colors.Green);
                toggleSwitch.OnContent = "Bot";
                fnp.text.IsEnabled = true;
            }

1 个答案:

答案 0 :(得分:0)

没有任何代码视图,很难说清楚。

但这里有一些建议:

  • 验证您的对象是否已实例化。
  • 确认您的文本框当前未被其他线程使用。

以下是一些适用于我的计算机的代码:

MainWindow.cs

public partial class MainWindow : Window
{
    // My window object
    Screen win = new Screen();
    public MainWindow()
    {
        InitializeComponent();
        win.Show();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        // Simple toggle action
        if (win.myText.IsEnabled == true)
            win.myText.IsEnabled = false;
        else
            win.myText.IsEnabled = true;
    }
}

这是" myText"的XAML。文本框:

<TextBox x:Name="myText" x:FieldModifier="public"/>

希望这有帮助。

编辑:从您的评论中看起来您似乎正在使用Async方法来更新GUI。

除非您使用某些代码使其可访问,否则您无法从其他线程修改GUI。查看this question了解如何使其可访问。 (查看Mark's answer,这很简单。)