所以我正在使用MVVM架构模式创建一个WPF应用程序。在这个应用程序里面我有一个listview。我已经使用这段XAML代码将窗口的SizeChanged事件绑定到命令:
<i:EventTrigger EventName="SizeChanged">
<i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}"/>
</i:EventTrigger>
现在,我想要的是向该命令传递一个参数,即listview宽度。
我尝试通过以下代码执行此操作
<i:EventTrigger EventName="SizeChanged">
<i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}" CommandParameter="{Binding Width, ElementName=listView}"/>
</i:EventTrigger>
事情是它不起作用!大声笑我知道如何使用XAML找到祖先对象。但我不知道如何做相反的事情。任何想法该怎么办?非常感谢你的时间!
答案 0 :(得分:0)
问题是您使用Width
而非ActualWidth
属性进行绑定
<i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}"
CommandParameter="{Binding ActualWidth, ElementName=listView}" />
我假设您的命令已经在运行,并且放在以下标记内:
<i:Interaction.Triggers>
....
</i:Interaction.Triggers>
<强> P.S 即可。:
不确定你要对Width
中的ViewModel
做什么,但在那里处理与GUI相关的事情(如Width)并不是一个好主意。