Я видел, как этот вопрос задавали несколько раз, но я не видел, чтобы найти полный ответ на мой сценарий.
В моем проекте у меня есть пользовательский элемент управления, который я создал как элемент списка. В этом пользовательском контроле у меня есть кнопка
<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 [+]" />
кнопка имеет событие щелчка, характерное для представления, которое в основном расширяет или сворачивает строку сетки в зависимости от состояния видимости. Я использовал событие здесь, поскольку оно было специфичным для пользовательского интерфейса. Эта кнопка также имеет команду, которая вызывается в виртуальной машине.
ВМ код
public class SearchViewModel : INotifyPropertyChanged
{
private DelegateCommand _getCFSDetailCommand;
public DelegateCommand GetCFSDetailCommand
{
get
{
if (this._getCFSDetailCommand == null)
this._getCFSDetailCommand = new DelegateCommand(GetCFSDetailCommandExecute, CanGetCFSDetailCommandExecute);
return this._getCFSDetailCommand;
}
}
private void GetCFSDetailCommandExecute(object parameter)
{
//bind collection to model call here
}
Проблема, с которой я столкнулся, заключается в том, что команда на кнопке «потеряна» или никогда не вызывается, когда внутри элемента списка у меня есть представление, привязанное к виртуальной машине, и если я помещаю эту команду на любую другую кнопку в представлении, команда является называется. Может ли кто-нибудь помочь мне понять, как вызвать команду, привязанную к кнопке в элементе списка?
Заранее спасибо