У меня проблема, и я не могу ее решить. У меня есть пользовательский элемент управления, чтобы упростить его, скажем, у меня есть кнопка внутри рамки внутри рамки. Я хочу, чтобы команда кнопки была привязываемой, а кнопка была закрытой. Итак, вот мой код:
CustomControl.cs:
public System.Windows.Input.ICommand CommandInButton
{
get { return ButtonInFrame.Command; }
set { ButtonInFrame.Command = value; }
}
public static readonly BindableProperty CommandInButtonProperty =
BindableProperty.Create(
propertyName:"CommandInButton",
returnType: typeof(System.Windows.Input.ICommand),
declaringType: typeof(CustomControl),
defaultBindingMode: BindingMode.TwoWay);
private Button ButtonInFrame;
Myview.xaml:
<local:FrameButtonImage Grid.Column="0" Grid.Row="0"
ColorInButton="LightBlue"
SourceImageInButton="male.png"
IsSelected="{Binding IsMenSelected}"
CommandInButton="{Binding SelectMenCommand}"
/>
MyViewModel.cs: (я использую Prism)
public DelegateCommand SelectMenCommand {get; приватный набор; }
public MainPageViewModel()
{
SelectMenCommand = new DelegateCommand(SelectMen, CanSelectMen);
}
private void SelectMen()
{
System.Diagnostics.Debug.WriteLine("Hello men");
}
private bool CanSelectMen()
{
return !IsMenSelected;
}
Моя проблема: никогда не срабатывает SelectMen ().
Если я свяжу команду с простой кнопкой, подобной этой:
<Button Grid.Column="1" Grid.Row="0" Grid.RowSpan="3"
Text=">"
FontSize="Large"
BackgroundColor="Transparent"
HorizontalOptions="Center"
VerticalOptions="Center"
Command="{Binding SelectMenCommand}"/>
Это работа, как шарм! Итак, я предположил, что я делаю беспорядок в CustomControl.cs ... Может быть, кто-то может мне помочь? Спасибо !