Как обрабатывать пустые строки и недействительные Uri в текстовом поле, привязанным к свойству uri

82
10

В моем приложении WPF у меня есть текстовое поле, которое привязано к свойству Uri.

<TextBox Grid.Column="1" Grid.Row="10" Margin="0,0,4,4" x:Name="txtExportURL" Text="{Binding Path=ProjectExportURL, Mode=TwoWay}"
Visibility="{Binding Permissions.CanExportJson, Source={x:Static services:ApplicationUserInfo.Instance}, Converter={StaticResource BoolToVisibilityConverter}}"/>

Я пытаюсь выполнить проверку строки, исходящей из текстового поля, следующим образом

private Uri _projectExportURL;
public Uri ProjectExportURL
{
get { return _projectExportURL; }
set
{
if(Uri.TryCreate(value, value.AbsoluteUri, out _projectExportURL))
_projectExportURL = value;
else
_projectExportURL = null;
this.OnPropertyChanged("ProjectExportURL");
}
}

Проблема в том, что когда строка TryCreate или недействительный Uri, и TryCreate не TryCreate и переходит к инструкции else. Он просто терпит неудачу и ничего не делает.

Как я могу убедиться, что пустые строки и недопустимые Uri установлены равными нулю?

спросил(а) 2014-11-04T18:33:00+03:00 5 лет, 12 месяцев назад
1
Решение
70

Вы имеете в виду это?

if(value == null || string.IsNullOrEmpty(value.ToString()) || !Uri.TryCreate(value, value.AbsoluteUri, out _projectExportURL))
_projectExportURL = null;
OnPropertyChanged("ProjectExportURL");

Не уверен, что пусто.

ответил(а) 2014-11-04T19:02:00+03:00 5 лет, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема