私はリストビューコントロールにボタンを持っています。このコントロールは、ViewModelクラスの基本クラスのコマンドの1つにバインドされています。リストビューの外にボタンを置くと、同じコマンドでうまく動作します。しかし、私がlistviewに置いたときにコマンドは起動されません。ListViewのボタン - MVVMを使用
あなたは理由を考えることができますか? - それは、リスト内の現在のアイテムののDataContextを取得し、そのためには、元のDataContextを失うあなたはリストビュー内のボタンを配置すると
<ListView Grid.Row="2" AlternationCount="2" ItemsSource="{Binding Path=AObject}" Margin="20" MaxHeight="200">
<ListView.DataContext>
<local:MyViewModel/>
</ListView.DataContext>
<ListView.View>
<GridView>
<GridViewColumn Header="Run ID" DisplayMemberBinding="{Binding Path=RID}" />
<GridViewColumn Header="Job ID" DisplayMemberBinding="{Binding Path=JID}" />
<GridViewColumn Header="Run Description">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding Path=OpenScCommand}" HorizontalAlignment="Right"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Edit">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding ShowItemCommand}" CommandParameter="{Binding Path=RID}" Content="_Edit email run" IsDefault="False"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
アイテムのビューモデルでは?!項目はロジックではなく* data *を表します。コマンドを置く間違ったimhoがあります。 –
ありがとうございました。私はそうだと思いました。私はViewModellocatorアプローチを実装することができましたが、これはもっと速くなっています。 – user635097