【发布时间】:2015-02-26 21:01:14
【问题描述】:
注意:我使用的是 PostSharps NotifyPropertyChanged 属性。
当我在 ctor 中设置属性时,我在视图中看到文本框更新,但是如果我将单击事件连接到按钮并将相同的属性设置为其他属性,则文本框不会更新。我做错了什么?
public partial class TestForm : Window
{
private MyViewModel _vm;
public TestForm()
{
InitializeComponent();
_vm = new MyViewModel();
DataContext = _vm;
_vm.MyText = "Test 1"; //Updates in UI
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_vm.MyText = "Test 2"; //No update in UI
}
}
[NotifyPropertyChanged]
public class MyViewModel
{
public string MyText { get; set; }
}
查看
<Window x:Class="MyApp.Forms.Activate.TestForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="300" Height="300">
<Grid>
<TextBox HorizontalAlignment="Left" Height="23"
TextWrapping="Wrap" Text="{Binding Path=MyText}"
Margin="0,123" Width="100" />
<Button Content="Button" Margin="29,154,0,0"
VerticalAlignment="Top" Width="75"
Click="Button_Click"/>
</Grid>
【问题讨论】:
-
通过反编译器运行已编译的程序集,并确保 PostSharp 已按预期编入代码。
-
它没有向标有属性的类添加任何内容:(
标签: wpf inotifypropertychanged postsharp