2012-05-21 3 views
0

나는 다음과 같은 예를 들어 클래스가 있습니다, 어떻게이 변수 이름에 라벨을 결합하는 것이 가능하다 XAML에서 WPF를 사용다른 싱글 톤 안에서 클래스 내부의 속성을 바인딩하는 방법은 무엇입니까?

public FatherClass 
{ 
    // This is a singleton, with instance property named Instance 

    public static ChildClass PropertyName { get; set; } 
} 

public ChildClass 
{ 
    public string Name { get; set; } 
} 

를? 두 단계 (예 : Father.Name)로 처리 할 수 ​​있었지만 예제와 같이 3 단계로 시도 할 때마다 오류가 발생합니다.

Label="{Binding Source=namespace:FatherClass.Instance.PropertyName, Path=Name}" 

하지만이 작동하지 않습니다 내가 무슨 짓을

이었다.

감사합니다.

답변

0

그냥 정적 속성에 직접 바인딩 :

{x:Static namespace:FatherClass.PropertyName.Name} 
+0

불가능합니다. FatherClass 안에는 인스턴스 ChildClass가 없습니다. 따라서 직접 말한대로 액세스 할 수 없습니다. ChildClass는 정적이 아닙니다. – jpnavarini

+0

@jpnavarini : 틀렸어. 'Name'은 정적이므로 인스턴스가 필요 없습니다. – SLaks

+0

죄송합니다. 정적이 아니며, FatherClass 만 정적입니다. 나는 원래 게시물을 편집 할 것이다. – jpnavarini

0

싱글에서 자식 타입의 싱글에서 클래스의 점 (질문처럼)하지만, 속성까지 내가 사용하지 않습니다. 네임 스페이스 : Common.DeviceModel 싱글 클래스 : 질문 의 ConnectionStatusManager // FatherClass ChildClass에 : 상태 VM에서 : 그 싱글에 특성 질문의 ConnectionStatus // ChildClass에

namespace Common.DeviceModel 
{ 
public class ConnectionStatusManager : INotifyPropertyChanged 
    { 
     public static ConnectionStatusManager Instance...; 
     public static ConnectionStatus Status...; 
    } 
} 

XAML :

xmlns:DeviceModel="clr-namespace:Common.DeviceModel;assembly=Common" 

용도 :

<DataTrigger Binding="{Binding Source={x:Static Member=DeviceModel:ConnectionStatusManager.Instance}, Path=Status}" 
              Value="{x:Static Member=DeviceModel:ConnectionStatus.DisConnected}"> 
               <Setter Property="IsEnabled" Value="False" /> 
              </DataTrigger> 
관련 문제