gpt4 book ai didi

listview - ListView 上的按钮 - 使用 MVVM

转载 作者:行者123 更新时间:2023-12-03 10:24:34 25 4
gpt4 key购买 nike

我在 listview 控件上有一个按钮。我已将此控件绑定(bind)到 ViewModel 类的基类上的命令之一。如果我在 ListView 之外放置一个按钮,它可以使用相同的命令正常工作。但是当我将它放在 ListView 上时,该命令不会被触发。

你能想出一个理由吗???

以下是片段:

<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>

最佳答案

那是因为按钮在 ListViewItem ,因此它继承了包含它的项目的 DataContext。这是绑定(bind)到 ListView 的 DataContext 的方法。本身:

<Button  Command="{Binding ShowItemCommand}" DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType=ListView}}" ...

附带说明:根据命令的作用,最好将其放在项目的 ViewModel 中

关于listview - ListView 上的按钮 - 使用 MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com