私はこの質問が数回尋ねられるのを見ましたが、私のシナリオに対する完全な答えを見つけることができませんでした。
プロジェクト内に、リストボックスアイテムとして作成したユーザーコントロールがあります。このユーザーコントロール内にボタンがあります
<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 [+]" />
ボタンには、ビューに固有のクリックイベントがあります。これは、基本的に、可視性の状態に基づいてグリッド行を展開または折りたたみます。ここでは、UIに固有のイベントを使用しました。このボタンには、VMで呼び出されるコマンドもあります。
VMコード
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
}
私が抱えている問題は、リストボックスアイテム内でビューがVMにバインドされているときにボタンのコマンドが「失われる」か呼び出されないことです。このコマンドをビュー内の他のボタンに配置すると、コマンドが呼び出されます。リストボックスアイテム内のボタンにバインドされたコマンドを呼び出す方法を誰かが理解するのを手伝ってもらえますか?
前もって感謝します