2014-09-11 1 views
-1

일부 속성 및 메서드가있는 클래스가 있고이 클래스의 개체에 대한 ObservableCollection을 목록에 바인딩합니다. Windows Universal App에서보기.Windows 범용 응용 프로그램에서 사용자 지정 클래스 개체의 속성 대신 메서드 결과 바인딩 방법 C#

그러나이 목록의 각 항목에 표시하려는 많은 것들은 다른 속성에서 파생 된 클래스의 속성입니다. 예를 들어 개체에 대한 부울을 가질 수 있으며 UI의 경우 두 가지 색상 진실과 거짓. 이 Boolean은 객체의 여러 float 속성 사이의 계산 결과 일 수 있습니다.

제 질문은 클래스의 메소드 결과를 바인딩하여 다른 속성을 개별적으로 계산하지 않고 해당 속성을 갖는 것을 절약 할 수 있습니까?

내가 컨버터로 봤는데하지만 난 당신이

public class MyClass 
{ 
    public bool MyBool {get; set;} 

    public Color MyColor() 
    { 
     if (this.MyBool) return Colors.Green; 
     else return Colors.Red; 
    } 
} 

이 가정하면 여러 속성

+0

계산 된 속성이 잘못 되었습니까? - 우리에게 몇 가지 코드를 보여줘. – BenjaminPaul

답변

1

에 따라 행동 할 수 있어야합니다 여기에 하나의 속성에서 작동하고처럼 그들이보고 당신이 원하는 MyColor을 바인딩하려면 읽기 전용 속성으로 만들면됩니다.

public class MyClass 
{ 
    public bool MyBool {get; set;} 
    public Color MyBoolColor { get { return this.MyBool ? Colors.Green : Colors.Red; } 
} 

그런 다음 바인드를 진행하고 MyBoolColor을 원하는대로 사용하십시오. 기본적으로 메소드로 가지고있는 것은 get 읽기 전용 속성의 일부가됩니다.

물론 이것은 실제 코드에 맞게 조정해야하는 매우 간단한 개념 증명입니다.

관련 문제