У меня есть TextBox
, который связан со свойством IPAddress
. Для этого я реализовал IValueConverter
, который пытается проанализировать string
из TextBox
в IPAddress
. Когда преобразование завершается неудачно, красная рамка автоматически закрашивается вокруг TextBox
, указывая, что данное значение неверно. Это работает до сих пор и как задумано.
Мой вопрос: есть ли способ каким-то образом получить это неудачное состояние преобразования, чтобы связать его со свойством IsEnabled
Button
. И все это в XAML.
Здесь IValueConverter
:
public class IpAddressConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is IPAddress)
{
return ((IPAddress)value).ToString();
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is string)
{
IPAddress ipAddress;
if (IPAddress.TryParse((string)value, out ipAddress))
{
return ipAddress;
}
}
return false;
}
}
EDIT:
Я реализовал логику для проверки ввода уже. Но из-за неудачного преобразования свойство не обновляется. А это значит, что свойство все еще содержит «старое» значение, которое, конечно, правильно, но не нуждается в проверке.