2017-04-15 55 views
-1

因此,我使用MVVM體系結構模式創建WPF應用程序。在這個應用程序裏面我有一個列表視圖。我已經綁定窗口SizeChanged事件來利用這段XAML代碼的命令:將後代對象傳遞爲命令參數

<i:EventTrigger EventName="SizeChanged"> 
     <i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}"/> 
    </i:EventTrigger> 

現在,我想要的是傳遞給該命令的參數,這是列表視圖的寬度。

我試圖通過下面的代碼

<i:EventTrigger EventName="SizeChanged"> 
     <i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}" CommandParameter="{Binding Width, ElementName=listView}"/> 
    </i:EventTrigger> 

的事情是,它不工作,要做到這一點!大聲笑我知道如何用XAML找到一個祖先對象。但我不知道如何去做相反的事情。任何想法做什麼?非常感謝您的寶貴時間 !

回答

0

的問題是,你正在使用Width而不是ActualWidth屬性綁定

<i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}" 
     CommandParameter="{Binding ActualWidth, ElementName=listView}" /> 

我假設你的命令已經工作,並且被放置在以下標籤中:

<i:Interaction.Triggers> 
    .... 
</i:Interaction.Triggers> 

PS: 不知道你在用ViewModel中的Width來做什麼,但是在那裏處理GUI相關的東西(比如寬度)通常不是一個好主意。