caliburn 마이크로의 다른 컨트롤에 컨트롤을 추가하고 나는이 튜토리얼 유사한 프로젝트 생성 :내가 Caliburn 마이크로 배우고
가 지금은 다른 사용자 컨트롤을 생성하고, 상기에 추가 할을 모델. 그래서 튜토리얼에서 shellViewModel과 본질적으로 동일한 간단한 사용자 컨트롤을 만들었습니다. 보기 및보기 모델은 shellViewModel 및 ShellView와 같지만 이름은 다릅니다.
응용 프로그램을 실행하면 해당보기가 화면에 표시되지만 ViewModel에 바인딩되지 않은 것을 볼 수 있습니다. 부트 스트랩을 변경해야 작동합니까?
추가 정보 : 위 설명과 같이 튜토리얼과 비슷한 wpf 프로젝트를 만들었습니다. 잘 작동합니다.
프로젝트에 새 사용자 정의 컨트롤을 추가하고 이름을 NewUCView로 지정합니다. 나는 변경
namespace CaliburnMicroTest
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using global::Caliburn.Micro;
/// <summary>
/// TODO: Update summary.
/// </summary>
public class NewUCViewModel : PropertyChangedBase
{
string name;
public string Name
{
get { return name; }
set
{
name = value;
NotifyOfPropertyChange(() => Name);
NotifyOfPropertyChange(() => CanSayHello);
}
}
public bool CanSayHello
{
get { return !string.IsNullOrWhiteSpace(Name); }
}
public void SayHello()
{
MessageBox.Show(string.Format("Hello {0}!", Name)); //Don't do this in real life :)
}
}
}
NewUCView.xaml
<UserControl x:Class="CaliburnMicroTest.NewUCView"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<StackPanel>
<TextBox x:Name="Name" />
<Button x:Name="SayHello"
Content="Click Me" />
</StackPanel>
</UserControl>
NewUCView.xaml.cs
namespace CaliburnMicroTest
{
/// <summary>
/// Interaction logic for NewUC.xaml
/// </summary>
public partial class NewUCView : UserControl
{
public NewUCView()
{
InitializeComponent();
}
}
}
NewUCViewModel.cs : 그래서 나는 내 프로젝트에 다음 파일이 ShellView를 클릭하고 NewUCView에 대한 참조를 추가하십시오.
<StackPanel>
<my:NewUCView x:Name="newUC" />
<TextBox x:Name="Name" />
<Button x:Name="SayHello"
Content="Click Me" />
</StackPanel>
은 또한 다음과 같은 NewUCViewModel입니다 newUC라는 속성이 있기 위하여 ShellViewModel을 변경 :
private NewUCViewModel newUC=new NewUCViewModel();
public NewUCViewModel NewUC
{
get
{
return newUC;
}
}
을하지만이 응용 프로그램을 실행하고 누르면 첫 번째 (사용자 컨트롤에있는) 저를 클릭 , 작동하지 않습니다. 다른 단추 (ShellView에 있음)가 작동합니다.
몇 가지 코드를 게시 할 수 있습니까? – Klaus78
코드를 추가 할 때 질문을보십시오. 프로젝트를 시작할 수는 있지만 어떻게 해야할지 모르겠습니다. – mans