Cześć, chodzi o to, że robię sobie walidację z użyciem IDataErrorInfo. Mój model wygląda w uproszczeniu tak:
public class Model: ObservableBase, IDataErrorInfo
{
string name;
public string Name
{
get { return name; }
set
{
if(name != value)
{
name = value;
NotifyPropertyChanged();
}
}
public string Error
{
get { return string.Empty; }
}
public string this[string propertyName]
{
get
{
switch(propertyName)
{
case "Name":
if(string.IsNullOrWhitespace(name))
return "Name is required";
}
return string.Empty;
}
}
}
}
W uproszczeniu mój XAML wygląda tak:
<app:DialogContentControl
Validation.ErrorTemplate="{x:Null}">
<TextBox Margin="0,0,5,5"
x:Name="nameEdit"
Text="{Binding Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}"/>
</app:DialogContentControl>
DialogContentControl dziedziczy po UserControl.
Teraz tak, gdy textbox traci focus i jest zgłoszony błąd, textbox ładnie zgłasza, ale dodatkowo CAŁE USERCONTROL jest w czerwonej ramce. Czemu tak? Już próbowałem różnych ustawień w różnych miejscach jeśli chodzi o Validation.ErrorTemplate=null, ale zawsze ta ramka pojawia się na całym usercontrol.
Teraz pytania moje są takie:
- Czemu tak jest, że całe UserControl dostaje ramkę?
- Jak zrobić, żeby UserControl nie dostawało ramki?