WPF IsEnabled网格

zak*_*zak 0 .net c# wpf properties isenabled

我希望在我的属性为空时禁用我的网格,并在非空时启用.

在我的.XAML中:

  <Grid Grid.Row="2" IsEnabled="{Binding ElementName=dgCustomers, Path=SelectedItem}">
      <my:ProductsHistoryDetailView />
  </Grid>
Run Code Online (Sandbox Code Playgroud)

在我的ViewModel.cs中:

    public ProductHistory SelectedItem
    {
        get { return _SelectedItem; }
        set
        {
            if (_SelectedItem != value)
            {
                _SelectedItem = value;
                RaisePropertyChanged(() => SelectedItem);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Loe*_*etn 6

您应该为viewmodel添加一个额外的属性.

    public bool IsGridEnabled
    {
        get 
          { 
             return this.SelectedItem != null;
          }
    }

<Grid Grid.Row="2" IsEnabled="{Binding IsGridEnabled}">
     <my:ProductsHistoryDetailView />
</Grid>
Run Code Online (Sandbox Code Playgroud)

当您进行SelectedItem更改时,请调用OnPropertyChanged事件IsGridEnabled:

public ProductHistory SelectedItem
{
    get { return _SelectedItem; }
    set
    {
        if (_SelectedItem != value)
        {
            _SelectedItem = value;
            RaisePropertyChanged(() => SelectedItem);
            RaisePropertyChanged(() => IsGridEnabled);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)