[asp.net]wpf 绑定 usercontrol 文本框从主窗口的文本框内的文本

发布时间: 2016/8/13 2:11:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

主窗口

<TextBox x:Name="fbSearchBox" Margin="69,10,298,11" TextWrapping="Wrap" BorderBrush=" x:Null}"/>
<local:FacebookAutoComplete "want to set text from here of fbSearchBox" />

用户控件

<UserControl x:Class="ZuneWithCtrls.Pages.Facebook.Home.FacebookAutoComplete"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" Width="431" Height="49"
         x:Name="uc">
<TextBlock x:Name="txtDynamicText"/>

</UserControl>

想要在 txtdynamicText 中显示文本时键入从 fbSearchBox。请帮助

解决方法 1:

你需要一些在用户控件可以绑定到的属性。
依赖项属性添加到用户控件︰

    public static readonly DependencyProperty DynamicTextProperty =
       DependencyProperty.Register(
          "DynamicText",
          typeof(string),
          typeof(FacebookAutoComplete),
          new FrameworkPropertyMetadata(null));

    public string DynamicText
    {
        get { return (string)GetValue(DynamicTextProperty); }
        set { SetValue(DynamicTextProperty, value); }
    }

在用户控件内的嵌套的控件绑定到此依赖项属性︰

<TextBlock x:Name="txtDynamicText" 
           Text="{Binding Path=DynamicText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"/>

现在您可以将绑定 FacebookAutoComplete.DynamicTextTextBoxMainWindow :

<local:FacebookAutoComplete DynamicText="{Binding Text, ElementName=fbSearchBox, UpdateSourceTrigger=PropertyChanged}"/>
赞助商