gpt4 book ai didi

xaml - Windows Phone 8 中 ListPicker 的 selectionChanged 之前的交互触发

转载 作者:行者123 更新时间:2023-12-04 15:12:48 24 4
gpt4 key购买 nike

当触发器出现在 ViewModel 中时,我遇到了一个问题,SelectedItem(parameter) 来自先前选择的项目。我需要新选择的项目作为 selectionChanged 的​​参数。

我是 WP8 的新手。下面是代码

    <toolkit:ListPicker Header="Background"
ExpansionMode="FullscreenOnly"
Template="{StaticResource ListPickerControlTemplate}"
VerticalAlignment="Top"
ItemsSource="{Binding Path=Buildings.ObjectList}"
Margin="0"
x:Name="buldings"
Padding="0">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding Path=BuildingSelectionCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=buldings}" />
</i:EventTrigger>
</i:Interaction.Triggers>

谢谢
维诺德

最佳答案

通常,您应该将当前的 SelectionItem 作为参数传递给您的命令。由于事件是用过去时写的,所以你应该得到当前的 SelectedItem 而不是以前的。

您可以尝试将 SelectedItem 的绑定(bind)添加到您的 ListPicker 并省略将 SelectedItem 作为参数传递给您的 Command。

<toolkit:ListPicker SelectedItem="{Binding SelectedBuilding, Mode=TwoWay}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding Path=BuildingSelectionCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:ListPicker>

然后,您的命令需要访问属性 SelectedBuilding 才能执行
  public class BuildingSelectionCommand{

// a reference to your ViewModel that contains the SelectedBuilding-Property
public BuildingsViewModel ViewModel {
get;
set;
}

public bool CanExecute(object parameter) {
return ViewModel.SelectedBuilding != null;
}

public void Execute(object parameter){
var selectedItem = ViewModel.SelectedBuilding;

// execute command logic with selectedItem
}
}

您的代码可能会有所不同,因为它取决于您如何实现 ViewModel 和 Command,但我认为您应该得到它。

另一种方式在不使用 EventTrigger 的情况下,直接在 SelectedBuilding-Property 中执行命令。
public Building SelectBuilding{
get {
return _selectedBuilding
}
set{
_selectedBuilding = value;
RaisePropertyChanged("SelectedBuilding");

if (BuildingSelectionCommand.CanExecute(_selectedBuilding)) {
BuildingSelectionCommand.Execute(_selectedBuilding);
}
}

关于xaml - Windows Phone 8 中 ListPicker 的 selectionChanged 之前的交互触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16231349/

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