2013-07-04 5 views
0

Catel Framework를 Xceed.Wpf.Toolkit.PropertyGrid와 함께 사용할 때 오류가 있습니다. 오류가 나는 ModelBase에서 상속하는 경우 나 모두 정상입니다Catel MVVM xctk : PropertyGrid = 오류

이 코드 작업 들거 잘

public class PersonViewModel : ModelBase 
{ 
    [DisplayName(@"Название")] 
    [Description(@"Название стратегии")] 
    [Category(@"Основные")] 
    [PropertyOrder(0)] 
    public string Person 
    { 
     get { return GetValue<string>(PersonProperty); } 
     set { SetValue(PersonProperty, value); } 
    } 

    public static readonly PropertyData PersonProperty = RegisterProperty("Person", typeof(string)); 
} 

하지만이 코드는 didn를 '고 ViewModelBase 에서 상속하면 PropertyGrid가 보이지 않는 사용자 지정 특성이라는 사실에있다 t 작업

public class PersonViewModel : ViewModelBase 
{ 
    [DisplayName(@"Название")] 
    [Description(@"Название стратегии")] 
    [Category(@"Основные")] 
    [PropertyOrder(0)] 
    public string Person 
    { 
     get { return GetValue<string>(PersonProperty); } 
     set { SetValue(PersonProperty, value); } 
    } 

    public static readonly PropertyData PersonProperty = RegisterProperty("Person", typeof(string)); 
} 

XAML

<xcad:LayoutAnchorable ContentId="alarms" 
               Title="Alarms" 
               > 
          <xctk:PropertyGrid BorderThickness="0" 
               SelectedObject="{Binding Path=SelectedObject}" 
               ShowSearchBox="False" 
               ShowSortOptions="False" 
               Width="Auto" 
               AutoGenerateProperties="False" 
               NameColumnWidth="150"> 
           <xctk:PropertyGrid.PropertyDefinitions> 
            <xctk:PropertyDefinition Name="Person" /> 
           </xctk:PropertyGrid.PropertyDefinitions> 
          </xctk:PropertyGrid> 
         </xcad:LayoutAnchorable> 
+0

이상합니다. "모든 예외에서 중단"을 활성화하면 예외가없는 것이 확실합니까? –

+0

예 맞습니다 예외가 있습니다 파일 또는 어셈블리 "Catel.MVVM.Aero2"을로드 할 수 없습니다 – user45245

+0

이는 무시할 수 있습니다. 가능한 경우 WPF에서 테마를로드하려고합니다. 다른 예외가 있습니까? 당신은 작은 repro을 제공 할 수 있습니까? –

답변

1

보기 모델을 사용할 때보기 모델을 추가하는 것이 중요합니다. PersonViewModel을 작성했지만 PersonView가 없습니다.

Person에 대한 별도의보기를 작성하지 않으려면 PersonViewModel이 필요하지 않습니다. 우리는 뷰 모델 내에서 하위 뷰 모델을 만드는 것이 옳은 방법이 아니라고 생각합니다. 이것이 Catel에서 중첩 된 사용자 컨트롤 솔루션을 만든 이유입니다.

  1. 합니다 ( PersonViewModel 동적으로 작동합니다) 사용자 정의 PersonView 만들기
  2. (그것이 무엇이며, 사람의 모델)에 PersonModel을 유지
  3. :

    현재 2 가지 옵션이 있습니다