我使用的是caliburn micro,但是在SelectedItemChanged中不能使用Action

时间:2014-08-20 15:46:29

标签: windows-phone-8 mvvm caliburn.micro

我的pivotPageViewModel

public class PivotPageViewModel : Conductor<IScreen>.Collection.OneActive
{

    private readonly PivotItem1PageViewModel item1;
    private readonly PivotItem2PageViewModel item2;

    public PivotPageViewModel(PivotItem1PageViewModel item1, PivotItem2PageViewModel item2)
    {
        this.item1 = item1;
        this.item2 = item2;           
    }

    protected override void OnInitialize()
    {
        base.OnInitialize();

        Items.Add(item1);
        Items.Add(item2);

        ActivateItem(item1);
    }
}

PivotItem1

public class PivotItem1PageViewModel : Screen
{
    public String DisplayName { get; set; }
    public List<String> Item{ get; set; } 
    public PivotItem1PageViewModel (INavigationService navigationService)
        : base(navigationService)
    {
        DisplayName = "Name";
        Item= new List<String>();
        Item.Add("one");
        Item.Add("two");
        Item.Add("three");
        Item.Add("four");

    }
    public void SelectedItemChanged(String select)
    {
        Debug.WriteLine("HElllo!!! " + select);        
    }      
}

XAML

<ListBox x:Name="Secretariat" Foreground="Black"
         FontFamily="{StaticResource PhoneFontFamilyLight}"  
         FontSize="50" Margin="10,0,-14,0" 
         cal:Message.Attach="[Event SelectionChanged] = [Action SelectedItemChanged($this)]">
     <ListBox.ItemTemplate>
         <DataTemplate>
             <StackPanel>
                 <TextBlock Text="{Binding}" />
             </StackPanel>
         </DataTemplate>
     </ListBox.ItemTemplate>
 </ListBox>`

当我使用pivotitem时,我的SelectedItemChanged不起作用,但是当我使用页面正常时,SelectedItemChanged通常可以正常工作

1 个答案:

答案 0 :(得分:0)

根据Caliburn.Micro文件:

  

$ this - 附加操作的实际ui元素

所以很可能你的select参数不是String而是ListBox。您是否有任何关于Caliburn的例外情况&#39;未找到行动&#39;?