如何在WPF控制元件上繫結本地屬性
我有兩個WPF控制元件
<Button HorizontalAlignment="Center" Name="btnChange" Click="btnChange_Click" Content="Click Me" /> <Label Name="lblCompanyId" HorizontalAlignment="Center" DataContext="{Binding ElementName=_this}" Content="{Binding Path=CompanyName}" />
我們可以看到標籤繫結到本地屬性(在程式碼後面),當我點選按鈕時,我沒有看到任何值的標籤
以下是我的程式碼背後…
public static readonly DependencyProperty CompanyNameProperty = DependencyProperty.Register("CompanyName", typeof(string), typeof(Window3), new UIPropertyMetadata(string.Empty)); public string CompanyName { get { return (string)this.GetValue(CompanyNameProperty); } set { this.SetValue(CompanyNameProperty, value); } } private void btnChange_Click(object sender, RoutedEventArgs e) { this.CompanyName = "This is new company from code beind"; }
問候,
嘗試
Content="{Binding ElementName=_this, Path=CompanyName}"
沒有DataContext繫結
編輯
我的程式碼沒有問題,將你的視窗命名為x:Name =“_ this”?
<Window x:Class="WpfStackOverflowSpielWiese.Window3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window3" Height="300" Width="300" x:Name="_this"> <Grid> <StackPanel> <Button HorizontalAlignment="Center" Name="btnChange" Click="btnChange_Click" Content="Click Me" /> <Label Name="lblCompanyId" HorizontalAlignment="Center" DataContext="{Binding ElementName=_this}" Content="{Binding Path=CompanyName}"></Label> </StackPanel> </Grid> </Window>
你的視窗真的是Window3嗎?
public partial class Window3 : Window { public Window3() { this.InitializeComponent(); } public static readonly DependencyProperty CompanyNameProperty = DependencyProperty.Register("CompanyName", typeof(string), typeof(Window3), new UIPropertyMetadata(string.Empty)); public string CompanyName { get { return (string)this.GetValue(CompanyNameProperty); } set { this.SetValue(CompanyNameProperty, value); } } private void btnChange_Click(object sender, RoutedEventArgs e) { this.CompanyName = "This is new company from code beind"; } }
希望有所幫助
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/8580477/how-to-bind-local-property-on-control-in-wpf