私はWPFでCaliburn.Microを使用して学習しようとしています。ビュー内に複数のビューを追加するにはどうすればよいですか?
<Window x:Class="ProjectName.Views.MainView"
...>
<Grid>
<views:MyControlView />
</Grid>
</Window>
ビューモデルを使用した別のビュー: MyControlViewModel
<UserControl x:Class="ProjectName.Views.MyControlView"
...>
<Grid>
...
</Grid>
</UserControl>
ビューを追加するだけでは、適切な名前のビューモデルがあることが検出されません。これをバインドするにはどうすればよいですか?
私はさまざまなブートストラッパーを試し、cal:Bind.Model="path/classname/merge of the two" のようなものを使用しました。それをメインビューとユーザーコントロール(MyControlView)に追加しようとしました。この件に関してご協力いただき、誠にありがとうございます。私はかなり行き詰まっており、本当にCaliburn.Microを使いたいです:)
よろしく、ダイヤモンドフィッシュ
編集:私はまだそれを動作させることができません.問題はブートストラップか何かにあるようです. ただし、明確にするために、テストプロジェクト用に実行しているコードを次に示します。
MainView xaml:
<Window x:Class="Test.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
xmlns:views="clr-namespace:Test.Views"
Title="MainWindow" Height="360" Width="640">
<Grid>
<views:MyControlView />
</Grid>
MainViewModel コード:
public partial class MainViewModel : PropertyChangedBase
{
}
MyControlViewxaml:
<UserControl x:Class="Test.Views.MyControlView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
cal:Bind.Model="Test.MyControlViewModel"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock Text="{Binding MyProp}"/>
</Grid>
MyControlView コード:
public class MyControlViewModel : PropertyChangedBase
{
public string MyProp
{
get { return "Working"; }
}
}
エラーのスクリーンショット: http://clip2net.com/s/1gtgt
私が試してみました
cal:Bind.Model="Test.ViewModels.MyControlViewModel"
同じように。また、cal-referenceを試しました:
xmlns:cal="http://www.caliburnproject.org"
私のプロジェクトのスクリーンショットhttp://clip2net.com/s/1gthM
ドキュメンテーションは主に Silverlight 用であり、時々 CM ではなく Caliburn 用であるため、ブートストラッパーを間違って実装した可能性があります。このテスト プロジェクトでは、次のようになります: (App.xaml の .xaml-change を使用)
public class BootStrapper : Bootstrapper<MainViewModel>
{
}
ここで私を助けてください!それは私が見逃しているいくつかの基本的なもののようです:)