2017-12-15 1 views
1

Xamarin.Forms.View 클래스에서 파생되고이 기본 클래스에서 파생되는 다른 모든 클래스에 공통 속성을 갖는 기본 클래스를 만들고 싶습니다. Xamarin Base View for other보기

내가 만들 수있는 샘플입니다 :

public class VolosBaseView : View { 

    public bool Required { 
     get { return (bool)GetValue(RequiredProperty); } 
     set { SetValue(RequiredProperty, value); } 
    } 

    private static readonly BindableProperty RequiredProperty = BindableProperty.Create(nameof(Required), typeof(bool), typeof(VolosTextEntryView)); 

    protected override void OnPropertyChanged(string propertyName = null) { 
     base.OnPropertyChanged(propertyName); 

     if (propertyName == RequiredProperty.PropertyName) { 
      if (Required) { 
       BackgroundColor = Color.LightYellow; 
      } else { 
       BackgroundColor = Color.Default; 
      } 
     } 
    } 
} 

지금 나는이 기본 클래스에서 파생 각 Xamarin.Forms 뷰 클래스 (Entry, Picker, Switch, 등)에 대한 하나 개의 클래스를 필요로하지만, 경우 나는 (이 Entry입니다)이 같은 클래스를 생성 :

public class VolosTextEntryView : VolosBaseView { 

    public VolosTextEntryView() { 
    } 
} 

내보기는 일 Entry 기본 클래스의 모든 재산을 잃었다.

기본 속성을 사용하여 기본 클래스를 만들고이 클래스에서 파생되는 다른 모든 클래스를 만들 수 있습니까? 예를 들어 Xamarin.Forms 클래스와 같은 항목을 볼 수 있습니까?

감사합니다.

답변

2

당신이 말한대로 그런 일이 가능하도록하십시오. C#은 다중 상속을 가질 수 없습니다.

당신은 그럼에도 불구하고 the pattern suggested here

를 사용하여 시뮬레이션 할 수 있습니다, 그것은 당신이 인터페이스를 만들어 설명하는 ploblem를 해결할 수있는 가능성이있어, 다음, 예를 들어,보기 MyViewEntryEntry에서 inherites 및 IBaseView를 구현해야합니다.

관련 문제