Я часами бился об эту голову, и я надеюсь, что кто-то может указать мне правильное направление.
У меня есть кнопка в моем виде, в которой есть событие щелчка и прикрепленная команда.Событие click устанавливает видимость строки сетки как свернутую или видимую в зависимости от текущего состояния.
xaml
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="120" />
<RowDefinition x:Name="DetailHolder" Height="*" />
</Grid.RowDefinitions>
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="92.915" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button x:Name="DetailButton"
Grid.Column="1"
Width="107"
Height="23"
Margin="196,94,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Click= "MoreDetail_Click"
Command="{Binding GetCFSDetailCommand}"
Content="View Details [+]" >
<Button.DataContext>
<mdc:SearchViewModel/>
</Button.DataContext>
</Button>
</Grid>
<Grid x:Name="MyDetail"
Grid.Row="1"
MinHeight="150"
Visibility="Collapsed">
<TextBlock Text="My Hidden Data" />
</Grid>
</Grid>
Команда click вызывает метод, который проверяет текущее визуальное состояниеРаздел MyDetail и раскрывает или сворачивает его
Команда вызывает GetCFSDetailCommand из моей viewModel и т. Д.
Я застрял в том, что я хочу вызывать команду GetCFSDetailCommand только тогда, когда представление свернуто.Теперь он настроен так, что команда будет срабатывать при каждом нажатии кнопки.Я не могу использовать ICommand CanExecute, потому что я не хочу отключать кнопку.Буду признателен за любые предложения или идеи о том, как добиться этого.Одна мысль состояла в том, чтобы проверить видимость в коде события, а затем на основе этого события вызвать команду.Если это правильный подход, я был бы очень признателен за пример кода, поскольку мне не повезло в вызове команды из события.
Заранее спасибо