У меня есть команда, которая связывается с моделью представления, включена, но не всегда выполняется. Как я могу пойти на отладку этого? Я использовал WPF Inspector, и он подтверждает, что привязка верна.
Подробнее:
У меня есть элемент управления вкладками, который выполняет команду закрытия вкладок, только если вкладка не выбрана. Когда вкладка выбрана, команда не будет нажата.
Код довольно стандартный, и я не могу видеть или отлаживать пробемы.
Шаблонная кнопка закрытия на TabItem
<Style x:Key="ClosableStyle" TargetType="telerik:RadTabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ContentControl Grid.Column="0" Content="{Binding DisplayName}"/>
<telerik:RadButton Grid.Column="1" Margin="3 1 -4 0" Width="16" Height="16" Opacity="0.7" Command="{Binding Path=CloseCommand}">
<TextBlock Text="x" FontFamily="Arial Rounded MT" FontSize="12" Margin="0,-3,0,0" />
</telerik:RadButton>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Команда:
RelayCommand _closePanelCommand;
/// <summary>
/// Returns the command that, when invoked, attempts
/// to remove this workspace from the user interface.
/// </summary>
public virtual ICommand CloseCommand
{
get
{
if (_closePanelCommand == null)
{
_closePanelCommand = new RelayCommand(
() =>
{
this.OnRequestClose();
}
);
}
return _closePanelCommand;
}
}