我遇到問題,我有一個現有的模型對象,我無法擴展。實際問題有點複雜,所以我嘗試將其分解。使用DependencyProperty在TextBox上添加IsDirty-Flag
我想用依賴項屬性擴展TextBox
以指示文本已更改。所以,我想出了以下解決方案:
public class MyTextField : TextBox
{
public MyTextField()
{
this.TextChanged += new TextChangedEventHandler(MyTextField_TextChanged);
}
private void MyTextField_TextChanged(object sender, TextChangedEventArgs e)
{
IsDirty = true;
}
public static DependencyProperty IsDirtyProperty = DependencyProperty.Register(
"IsDirtyProperty",
typeof(bool),
typeof(MyTextField),
new PropertyMetadata(false));
public bool IsDirty
{
get { return (bool)GetValue(IsDirtyProperty); }
set { SetValue(IsDirtyProperty, value); }
}
}
XAML:
<my:MiaTextField Text="{Binding Barcode}" IsDirty="{Binding IsDirty}"/>
所以,如果我更改TextBox
文本中,isDirty
物業應更改爲true
。 但我得到了System.Windows.Markup.XamlParseException
:綁定只能設置爲「DependencyObject」的「DependencyProperty」。
。不幸的是綁定不起作用。在GridView中,我有我的 'Textbox'綁定了一個'ObservableCollection'。 'IsDirtyProperty' -DP設置正確。 – Marcel
@Marcel:你試過我的建議嗎? – mm8
@ mm8是的但綁定不起作用 – Marcel