我新到 C# 和 WPF 。 我写了一个简单的程序。 我有一个名为 < code> Counter code > 的类, 显示从 0 开始的只读属性 < code> < count code >, 以及一个仅加注一个数的公共方法 < code> incrimination code > 。 < code> Counter code > 执行 < code> Property Changed 。
我有一个窗口类( 代码在下面) 。 我将一个 < code> counter code> 对象实例传递给构建者, 并执行一个绑定。 窗口有一个按钮和一个标签。 标签被绑在 code > count code > 属性上, 按钮调用 < code > Incrowment code > 。
这一切都有效。
然而,我所看到的多数例子都围绕网络, MSDN大多涉及XAML中的约束性定义。 我怎样才能修改我的例子来将约束性操作从代码后面移到标记上? VS 2010 属性窗口中的约束性属性似乎不知道如何做我想做的事。 也许这不可能吗?
还有一个问题: 我不认为这个例子适合MVVM... 我的反向类单独存在, 除了通过它的属性之外, 没有与任何地方的视图相连。 但是, 反视类持有一个引用它的位置 。 这是这个引用的适当位置吗? 我虽然也认为我应该创建窗口, 然后设定一个属性( 如 < code> CounterObject ), 而不是通过构建器。
public partial class CounterWindow : Window {
Counter ctr;
public CounterWindow(Counter ctr) {
InitializeComponent();
this.ctr = ctr;
Binding b = new Binding("Count");
b.Source = ctr;
CounterLabel.SetBinding(Label.ContentProperty, b);
}
private void IncrementButton_Click(object sender, RoutedEventArgs e) {
ctr.Increment();
}
}