【问题标题】:WPF : How to bind textbox with resource in 2 ways?WPF:如何以两种方式将文本框与资源绑定?
【发布时间】:2015-09-09 14:11:15
【问题描述】:

我想将 WPF 文本框与资源绑定(两种方式),并且我想在我的代码中访问此变量。

这是我的 xaml 代码:

<Window.Resources>
    <system:String x:Key="SearchPattern">Eric</system:String>
</Window.Resources>
<TextBox Name="TxbRecherche" Margin="20,0" Text="{StaticResource SearchPattern }" >
    <TextBox.InputBindings>
        <KeyBinding Gesture="Enter" Command="{Binding BtnRechercher_OnClickechercher_Click}"/>
    </TextBox.InputBindings>
</TextBox>

这是我的 C# 代码:

private void BtnRechercher_OnClickechercher_Click(object sender, RoutedEventArgs e)
    {
        string searchPattern = this.Resources["SearchPattern"].ToString();
        TbxStatus.Text = " Recherche de '" + searchPattern + "' en cours ...";

        //Lancement de la fenêtre de chargement dans un autre thread..
        BackgroundWorker bw = new BackgroundWorker();
        bw.DoWork += new DoWorkEventHandler(bw_DoWork);
        bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);

        if (bw.IsBusy != true)
        {
            pbRechercheEnCours.Visibility = Visibility.Visible;
            lblRechercheEnCours.Visibility = Visibility.Visible;
            bw.RunWorkerAsync(searchPattern);
        }
    }

缺少什么?

【问题讨论】:

  • 我也试过 但现在我的文本框没有绑定这个资源...
  • tbh 你的问题不清楚,期望是什么?

标签: c# wpf binding


【解决方案1】:

您的TextBox 未绑定到任何DataContext(而是绑定到StaticResource)。 您应该绑定到用作DataContext 的自定义类的属性。您可以在后面的代码中设置DataContext

窗口初始化:

this.DataContext = new MyModel();

在你的代码后面的某个地方:

MessageBox.Show(DataContext.MyPattern);

在您的 Xaml 中:

<TextBox Text={Binding MyPattern}/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2017-01-03
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2021-03-01
    相关资源
    最近更新 更多