2014-07-04 29 views
0

我知道如何調用命令在我的ViewModel,當我查看負載:EventTrigger沒有觸發多個子用戶控件的第二

<UserControl x:Class="TestApp.Views.MyUserControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Loaded"> 
      <i:InvokeCommandAction Command="{Binding OnLoadedCommand}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</UserControl> 

這工作得很好。

但是,我有一個父控件,我把這些UserControls放入。這種動態發生,即我需要時添加一個新的UserControl(用戶操作)。

我的問題是OnLoadedCommand在我第一次添加UserControl時執行,但在隨後的添加中不再有效。如果我刪除所有用戶控件並重新添加,則會發生同樣的情況:爲第一個用戶控件執行,不再用於任何後續的用戶控件。

如何分別爲每個UserControl對我的ViewModel進行調用?

回答

1

我把你的控制代碼,並嘗試它,得到儘可能多的電話,因爲我添加控件。

我做了一個簡單的'for'循環,並添加了幾個控件的初始化。 我試着從一個主視圖模型設置datacontext,併爲每個控件分開viewmodels,兩種嘗試都正常工作。

命令顯然被調用。因此命令綁定顯然存在問題。嘗試查看其他控件的datacontext設置,或者在第一次調用後更改viewmodel(如果它們共享一個viewmodel實例)。

+0

是的,我太虛弱了。進一步的調查讓我相信這與虛擬化和我正在使用的Telerik控制(RadDocking)有關。我也把它放在[Telerik論壇](http://www.telerik.com/forums/virtualization-and-datatemplates)上。 – Peter

相關問題