如何绑定(bind)到在列表 View 中显示并被双击的数据模板?

我想要这样的东西:

<CheckBox Grid.Column="1" Grid.Row="5" Command="{Binding AddItemCommand}"></CheckBox>

我已经完成了所有工作,但是不知道如何将命令绑定(bind)到列表 View 中的数据模板或该数据模板中的网格。

Datatempalte是这样的:
<DataTemplate x:Key="ServerViewItemTemplate" DataType="ViewModel:ServerViewModel">
        <Border BorderBrush="Black" BorderThickness="1" Margin="10">

            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="70" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <Grid.RowDefinitions>
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                </Grid.RowDefinitions>

                <TextBlock Grid.Column="0" Grid.Row="0" Text="ServerId:" FontWeight="Bold"/>
                <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding ServerId}" FontWeight="Bold"/>
                <TextBlock Grid.Column="0" Grid.Row="1" Text="Login:"/>
                <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Login}" />
                <TextBlock Grid.Column="0" Grid.Row="2" Text="Password:"/>
                <TextBlock Grid.Column="1" Grid.Row="2" Text="{Binding Password}" />
                <TextBlock Grid.Column="0" Grid.Row="3" Text="Type:"/>
                <TextBlock Grid.Column="1" Grid.Row="3" Text="{Binding Type}" />
                <TextBlock Grid.Column="0" Grid.Row="4" Text="IpAddress:"/>
                <TextBlock Grid.Column="1" Grid.Row="4" Text="{Binding IpAddress}" />
                <TextBlock Grid.Column="0" Grid.Row="5" Text="Include:"/>
                <CheckBox Grid.Column="1" Grid.Row="5" Command="{Binding AddItemCommand}"></CheckBox>
            </Grid>
        </Border>
    </DataTemplate>

因此,如果双击它,则应调用ICommand,与CheckBox AddItemCommand中的相同。

最佳答案

我建议使用行为来处理双击事件。根据双击时要执行的操作,可能需要向Behavior中添加ICommand Dependency属性,以便可以绑定(bind)到 View 模型上的命令。

这是类似的帖子:Is there a way in XAML to select all text in textbox when double clicked?

在该示例中,用户在双击时在TextBox中选择文本。

更多的:

您的XAML如下所示:

<DataTemplate x:Key="ServerViewItemTemplate" DataType="ViewModel:ServerViewModel">
    <Border BorderBrush="Black" BorderThickness="1" Margin="10">

        <Grid>
            <e.Interaction.Behaviors>
                <local:DoubleClickBehavior Command="{Binding Path=AddItemCommand}"/>
            </e.Interaction.Behaviors>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="70" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
... ...

关于c# - 如何获取 ListView 数据模板项双击WPF MVVM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16082360/

10-14 03:21