0
我有以下視圖模型:MVVMLight:RelayCommand似乎無法在Windows 8工作程序
public class TransportationUnit : ViewModelBase {
private string _TypeOfFuel;
private string _Model;
private string _Manufacturer;
private string _LicencePlate;
private Guid _Key = Guid.Empty;
public ICommand CmdAddTransportationUnit { get; set; }
public TransportationUnit() {
CmdAddTransportationUnit = new GalaSoft.MvvmLight.Command.RelayCommand(() => AddTransportationUnitDo(),() => AddTransportationUnitCan());
}
/// <summary>manufacturer</summary>
public string Manufacturer {
get { return _Manufacturer; }
set {
if (_Manufacturer == value)
return;
RaisePropertyChanging("Manufacturer");
_Manufacturer = value;
RaisePropertyChanged("Manufacturer");
}
}
/* ommitted some equal properties */
public bool AddTransportationUnitCan() {
return !string.IsNullOrWhiteSpace(Model) && !string.IsNullOrWhiteSpace(Manufacturer) & !string.IsNullOrWhiteSpace(LicencePlate);
}
public async void AddTransportationUnitDo() {
await LogbookRepository.Instance.Add<TransportationUnit>(this);
}
}
我的文本框綁定這樣:
<TextBox x:Name="CarManufacturerNameText" Width="400" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" Text="{Binding Manufacturer,Mode=TwoWay}" />
我在AppBar(底部)按鍵綁定這樣:
<Button Style="{StaticResource SaveAppBarButtonStyle}" AutomationProperties.Name="" x:Name="save" x:Uid="StandardSave" Command="{Binding CmdAddTransportationUnit}" />
我會期望按鈕被禁用時,方法AddTransportationUnitCan
評估es爲false,反之亦然。當所有文本框都被填充時,它會一直被禁用,甚至在創建RelayCommand時,在該方法中設置的斷點只會觸發一次。我已經測試了相當長的時間,但還沒有找到解決方案。還有其他人有這個問題嗎?
編輯:當我剛剛在AddTransportationUnitCan
返回true按鈕啓用