Обзор: Я связал свойство IsEnabled
свойства кнопки bool в связанной модели.Как установить логический флаг на основе нескольких вариантов свойств?
В текущей настройке пользовательского интерфейса по IsValidTagRequest
должен быть установлен в истинную если все три свойства есть выбор, то есть RaisePropertyChanged()
сработал в каждом инкубаторе.
То, что я действительно пытался это установка личного Его _isValidTagRequest истины после RaisePropertyChanged()
каждого из требуемых свойств - RegNumber
, SelectedZone
, SelectedParkDuration
.
Но этот сценарий не учитывает все три свойства, имеющие значение, выбранное для включения кнопки.
Вопрос: Кто-нибудь знает, как я могу проверить, что несколько свойств были изменены, прежде чем включить свойство bool в значение true?
BOOL proeprty определяется следующим образом, а затем каждый из требуемых свойств, которые должны изменить до IsEnabled устанавливается истина:
private bool isValidTagRequest = false;
public bool IsValidTagRequest
{
get { return isValidTagRequest; }
set
{
if (value != isValidTagRequest)
{
isValidTagRequest = value;
RaisePropertyChanged("IsValidTagRequest");
}
}
}
Три свойства - RegNumber
, SelectedZone
, SelectedParkDuration
:
private string _regNumber;
public string RegNumber
{
get
{
return this._regNumber;
}
set
{
if (_regNumber != value)
{
_regNumber = value;
RaisePropertyChanged("RegNumber");
}
}
}
private ZoneInfo _selectedZone;
public ZoneInfo SelectedZone
{
get
{
return this._selectedZone;
}
set
{
if (_selectedZone != value)
{
_selectedZone = value;
RaisePropertyChanged("SelectedZone");
}
}
}
private TimeSpan? _selectedParkDuration = TimeSpan.Parse("00:00");
public TimeSpan? SelectedParkDuration
{
get
{
return this._selectedParkDuration;
}
set
{
if (_selectedParkDuration != value)
{
_selectedParkDuration = value;
RaisePropertyChanged("SelectedParkDuration");
}
}
}
И для контекста привязка в XAML определяется следующим образом:
<Button Grid.Row="3"
Grid.Column="1"
Width="200"
Height="100"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
Command="{Binding TagRequestCommand}"
Content="Send"
IsEnabled="{Binding IsValidTagRequest,
Mode=TwoWay}"
Style="{StaticResource CustomButtonStyle}" />