我在这里上传了我的示例项目:https : //www.file-upload.net/download-13252079/WpfApp1.zip.html 这是一个 WPF 窗口,其中包含多个相同的用户控件。UserControl 有一个名为“Text”的依赖属性,它绑定到 MainWindowViewModel 的属性并成功显示在 UserControl 的 TextBlock 中。但是,如果我双击 UserControl 并希望它提供其依赖属性的值,则该值为空。为什么是这样?非常感谢你的帮助!
编辑:抱歉,这里有一些源代码:UserControl 的 XAML:
<UserControl x:Class="WpfApp1.UserControl1"
...
x:Name="UC1">
<StackPanel Orientation="Vertical">
<TextBlock Margin="5" Text="Test" FontSize="20"></TextBlock>
<TextBlock Margin="5" Text="{Binding ElementName=UC1, Path=Text}" FontSize="20"></TextBlock>
</StackPanel>
</UserControl>
用户控件的代码:
public partial class UserControl1 : UserControl, INotifyPropertyChanged
{
public UserControl1()
{
InitializeComponent();
}
string text;
public string Text
{
get { return text; }
set { SetProperty(ref text, value); }
}
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text", typeof(string), typeof(UserControl1));
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] String propertyName = null)
{
if (Equals(storage, value))
{
return false;
}
storage = value;
OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
ABOUTYOU
相关分类