将嵌套控件属性绑定到Page

时间:2015-06-23 23:07:49

标签: c# wpf windows

{ "title": "ID", "data": "ObjID", "className": "dt-center" },
{ "title": "Name", "data": "ObjName", "className": "dt-center" }

我正在尝试将ToBarTextBox上的文本绑定到我的类ChatPage上的名为ToBarText的属性。我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

从xaml中删除Source属性。 您可以选择添加FallbackValue

<TextBox x:Name="ToBarTextBox" Height="22.6666666666667" Margin="0" TextWrapping="Wrap" Text="{Binding Path=ToBarText, FallbackValue=ToBarText}" VerticalAlignment="Top" Width="120"/>

在后面的代码中,您需要设置DataContext(它负责选择绑定的数据源)。在您当前的设置中,您似乎正在使用单个类来处理GUI并提供数据。在这种情况下,请使用:

public ChatPage()
{
    // constructor code
    this.DataContext = this;
}

您还需要设置数据源以实现INotifyPropertyChanged

internal class ChatPage : INotifyPropertyChanged
{
    #region INotifyPropertyChanged Members

    public event PropertyChangedEventHandler PropertyChanged;

    protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    #endregion

// ...

话虽如此,我建议学习一下Model-View-ViewModel模式,它有助于将GUI代码与数据源分开。搜索mvvm in wpf