几个小时以来,我一直在努力解决这个问题,我希望有人能指出我正确的方向。
我的视图中有一个按钮,它有一个点击事件和一个附加的命令。click 事件根据当前状态将网格行的可见性设置为折叠或可见。
xml
<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 部分的当前视觉状态并展开或折叠它
该命令从我的 viewModel 等调用 GetCFSDetailCommand
我卡住的地方是我只想在视图折叠时调用命令 GetCFSDetailCommand 。现在设置的方式是每次单击按钮时都会触发命令。我不能使用 ICommand CanExecute 因为我不想禁用该按钮。我将不胜感激有关如何实现这一目标的任何建议或想法。一种想法是测试背后事件代码中的可见性,然后基于该事件调用命令。如果这是正确的方法,我将非常感谢代码示例,因为我没有运气从事件中调用命令。
提前致谢