相关疑难解决方法(0)

使用WPF绑定传递两个命令参数

我有一个命令,我使用以下标准语法从我的XAML文件执行:

<Button Content="Zoom" Command="{Binding MyViewModel.ZoomCommand}"/>
Run Code Online (Sandbox Code Playgroud)

这很好用,直到我意识到我需要从视图中获取两条信息,以便按照用户期望的方式完成此操作(画布的宽度和高度).

似乎可以将数组作为参数传递给我的命令,但是我没有看到在CommandParameter中指定绑定到我的两个canvas属性的方法:

<Button Content="Zoom" 
        Command="{Binding MyViewModel.ZoomCommand" 
        CommandParameter="{Binding ElementName=MyCanvas, Path=Width}"/>
Run Code Online (Sandbox Code Playgroud)

如何将宽度和高度传递给我的命令?使用XAML中的命令似乎不太可能,我需要在代码隐藏中连接一个单击处理程序,以便将此信息传递给我的缩放方法.

wpf binding command path

144
推荐指数
5
解决办法
16万
查看次数

多个参数传递给命令WPF

可能重复:
使用WPF绑定传递两个命令参数

我有以下层次结构:

abstract class TicketBase
{
    public DateTime PublishedDate { get; set; }
}

class TicketTypeA:TicketBase
{
     public string PropertyA { get; set; }
}   

class TicketTypeB:TicketBase
{
     public string PropertyB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的VM中,我有一个List<TicketBase> Tickets.当用户单击我的应用程序上的按钮时,他们希望查看某个属性的先前值列表,例如:

<Button Tag="{x:Type Types:TicketTypeA}" 
        Command="{Binding ListHistoryCommand}"
        CommandParameter="{Binding Tag, RelativeSource={RelativeSource Self}}" />
Run Code Online (Sandbox Code Playgroud)

如您所见,我将我的Tag属性设置为TicketTypeA并将其作为参数传递给我的命令:

private void ListHistory(object o)
{
   if (Tickets.Count == 0)
       return;
   Type ty = o as Type;
   ValueHistory = new ObservableCollection<TicketBase>(GetTicketsOfType(ty).Select(t => t)); // <- …
Run Code Online (Sandbox Code Playgroud)

parameters wpf command

5
推荐指数
2
解决办法
4万
查看次数

标签 统计

command ×2

wpf ×2

binding ×1

parameters ×1

path ×1