我剛剛開始CM的教程,直到最後一個例子here。我想更好地感受一下我可以用CM做些什麼,所以我在wpf項目中做了一些我通常會做的事情,爲Views創建一個文件夾,爲ViewModel創建一個文件夾。公約應該仍然可以找到一切,對吧?caliburn微型教程問題
所有其他示例都以這種方式工作得很好,但在對CM和如何調試silverlight一無所知之間,我無法解釋看起來像是數據上下文問題 - 只是添加按鈕顯示。
有人可以發現問題嗎?
乾杯,
Berryl
VM
[Export(typeof(IShell))]
public class ShellWithCompositionViewModel : PropertyChangedBase
{
public BindableCollection<Model> Items { get; private set; }
public ShellWithCompositionViewModel() {
Items = new BindableCollection<Model>
{
new Model {Id = Guid.NewGuid()},
new Model {Id = Guid.NewGuid()},
new Model {Id = Guid.NewGuid()},
new Model {Id = Guid.NewGuid()}
};
}
public void Add() { Items.Add(new Model {Id = Guid.NewGuid()}); }
public void Remove(Model child) { Items.Remove(child); }
}
VIEW
<UserControl x:Class="Caliburn.Micro.Hello.Views.ShellWithCompositionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="http://www.caliburnproject.org"
>
<StackPanel>
<ItemsControl x:Name="Items">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Content="Remove" cal:Message.Attach="Remove($dataContext)" />
<TextBlock Text="{Binding Id}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Button Content="Add" cal:Message.Attach="Add" />
</StackPanel>
BOOT
namespace Caliburn.Micro.Hello
{
//public class HelloBootstrapper : Bootstrapper<ShellViewModel> { }
//public class HelloBootstrapper : Bootstrapper<ShellWithParametersViewModel> { }
public class HelloBootstrapper : Bootstrapper<ShellWithCompositionView> { }
}
的FIX
// left off the model the 1st time (caps not needed!)
public class HelloBootstrapper : Bootstrapper<ShellWithCompositionViewMODEL> { }
Duh ...這實際上是一個簡單的問題,絕對不是CM問題。線索在Bootstrapper中,如果有人想要一些快速回答的話。 – Berryl 2011-02-03 14:44:38