gpt4 book ai didi

wpf - 使用 MVVM Light 从组合框中的按钮触发命令

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

我在自定义 ComboxBox 触发事件时遇到问题。这个想法是让组合框绑定(bind)到一组项目,每个项目都有一个编辑和删除按钮。我可以使用代码隐藏使点击事件工作,但命令绑定(bind)似乎什么都不做。

    <ComboBox SelectedIndex="0">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}"/>
<StackPanel Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button Content="Edit"
Margin="0,0,5,0"
Command="{Binding EditConnectionCommand}"
CommandParameter="{Binding ID}"/>
<Button Content="Delete"
Command="{Binding DeleteConnectionCommand}"
CommandParameter="{Binding ID}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem IsEnabled="False" Visibility="Collapsed">Select a database connection...</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource ConnectionsBridge}}" />
<ComboBoxItem>...New Connection...</ComboBoxItem>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>

最佳答案

您的绑定(bind)在项目中查找命令,而不是在窗口的 ViewModel 中。
要更改这一点,请像这样修复您的绑定(bind):

{Binding ElementName=root, Path=DataContext.EditConnectionCommand}

为此,您需要添加 Name="root"给您的 UserControlWindow .

关于wpf - 使用 MVVM Light 从组合框中的按钮触发命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10703864/

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