2013-03-06 32 views
0

好的。所以,我有以下行控制绑定中的控制

<!-- The first one is commented cause I tried it and it failed harder --> 
<!--<ContentControl Name="BcModel" Grid.Column="2" Width="300" Height="300"/>--> 
<local:BigCalendarDateView x:Name="BcModel" Grid.Column="2" Width="300" Height="300"/> 

而视图模型

[Export(typeof(AppViewModel))] 
public class AppViewModel : Screen 
{ 
    public BigCalendarDateViewModel BcModel { get; set; } 

    [ImportingConstructor] 
    public AppViewModel(BigCalendarDateViewModel mod, IEventAggregator events) 
    { 
     this.DisplayName = "Calendar"; 
     events.Subscribe(this); 
     BcModel = mod; 
    } 
} 

而且对于BigCalendarDateViewModel主视图,我查看

<!-- Commented because I tried this also --> 
<!--cal:Message.Attach="[Event Click] = [Action ChangeState]"--> 
<Button Name="ChangeState" Content="Button" HorizontalAlignment="Left" Margin="76,156,0,0" Grid.Row="2" VerticalAlignment="Top" Width="138"/> 

并在视图模型

[Export(typeof(BigCalendarDateViewModel))] 
public class BigCalendarDateViewModel : PropertyChangedBase 
{ 
    ... 
    public void ChangeState() 
    { 
     Console.Beep(); 
    } 
} 

我可以通过调试,并且AppView,AppViewModel,BigCalendarDateView和BigCalendarDateViewModel全部获得初始化,并且BigCalendarDateViewModel以可视方式显示,但是当我单击按钮时,它或者说它找不到方法,或者它不会执行任何东西。

它几乎看起来像BigCalendarDateViewModel永远不会连线到BigCalendarDateView。

当我做了控制引导程序,它弹出它在自己的窗口,它工作正常(在新的窗口,不是静止的第一窗口)

任何想法?

+0

尝试使用X:上按钮的名称。 – mdm20 2013-03-06 19:18:09

+0

@ mdm20谢谢,但这也行不通。 – 2013-03-06 19:18:50

回答

1

我想你可以明确做这样的事情提供视图模型到视图:

<local:BigCalendarDateView Grid.Column="2" Width="300" Height="300" cal:Bind.Model={Binding BcModel} /> 
+0

哦真棒,那工作。谢谢。 – 2013-03-06 19:29:06