gpt4 book ai didi

wpf - 对象发送者在 RelayCommand 中始终为空

转载 作者:行者123 更新时间:2023-12-04 21:40:26 25 4
gpt4 key购买 nike

我正在使用 RelayCommand 来处理按钮单击,我需要获取 sender 参数但它始终为空,知道为什么吗?

View 模型.cs

    private RelayCommand _expandClickCommand;
public ICommand ExpandClickCommand
{
get
{
if (_expandClickCommand == null)
{
_expandClickCommand = new RelayCommand(ExpandClickCommandExecute, ExpandClickCommandCanExecute);
}
return _expandClickCommand;
}
}

public void ExpandClickCommandExecute(object sender)
{
//sender is always null when i get here!
}
public bool ExpandClickCommandCanExecute(object sender)
{
return true;
}

查看.xaml
<ListBox ItemsSource="{Binding Path=MyList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<Button Grid.Column="0" Grid.Row="0" Content="Expand" Command="{Binding DataContext.ExpandClickCommand,ElementName=SprintBacklog}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

我需要在 ExpandClickCommand 中获取当前 ListboxItem 的索引

最佳答案

该对象很可能不是发件人,而是CommandParameter。由控件传递。你可以绑定(bind) CommandParameter按钮到自己模仿sender .

CommandParameter="{Binding RelativeSource={RelativeSource Self}}"

(但这可能对您没有太大帮助,因此请考虑一下您传递的内容可以帮助您获得该值(value)。)

关于wpf - 对象发送者在 RelayCommand 中始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942093/

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