概要: ボタンのIsEnabled
プロパティを関連するビューモデルのboolフラグにバインドしました。すべての3つのプロパティを選択している場合IsValidTagRequest
は真に設定する必要があり、現在のUI設定で複数のプロパティ選択に基づいてブール値フラグを設定するにはどうすればよいですか?
は、すなわちRaisePropertyChanged()
は各セッターで焼成しています。
私が必要とされる特性のそれぞれのRaisePropertyChanged()
後に真にプライベートブール_isValidTagRequestを設定されてみた - RegNumber
、SelectedZone
、SelectedParkDuration
を。
しかし、このシナリオでは、ボタンを有効にするために選択された値を持つ3つのプロパティがすべて考慮されていません。
質問: 誰もが、私は複数のプロパティがtrueにブールプロパティを有効にする前に変更されたことを確認することができます方法を知っていますか?
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");
}
}
}
: -
RegNumber
、
SelectedZone
、
SelectedParkDuration
private bool isValidTagRequest = false;
public bool IsValidTagRequest
{
get { return isValidTagRequest; }
set
{
if (value != isValidTagRequest)
{
isValidTagRequest = value;
RaisePropertyChanged("IsValidTagRequest");
}
}
}
3つのプロパティが:でIsEnabledがtrueに設定される前に必要とされる特性の各々続い
ブールproeprtyは、以下のように定義されているが、変更します
コンテキストの場合、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}" />