跟踪各个字段的更改 - Silverlight

时间:2010-04-14 09:06:00

标签: c# .net silverlight

我有一个页面,里面有几个文本框。这些控件绑定到模型。我正在使用MVVM。

假设我有三个文本框FirstNameLastNameCompany。所以在模型中,我有三个属性要绑定。现在我需要跟踪每个字段发生的变化。如果FirstName从原始值更改,我需要使用不同的背景颜色对文本框进行着色。

目前,我正在创建另一个名为FirstNameChanged的属性,并将背景绑定到此属性。我将在更改FirstName时更新此信息。对于3个字段,这似乎没问题。但是当我有更多的字段时,属性的数量会太多。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

通过跟踪更改,您的意思并不十分清楚。如果你只想在编辑字段时文本框应该改变颜色,那么我就是这样解决的。

由于这是视图特定功能,因此代码应位于视图的代码隐藏中,不应位于视图模型中。

所以我会做以下事情:

为文本框中的文本更改创建事件处理程序:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textbox = sender as TextBox;
    textbox.Background = new SolidColorBrush(Colors.Green);
}

然后将所有文本框的TextChanged事件绑定到此事件处理程序。