2012-05-21 40 views
0

我有以下類,例如:如何綁定另一個單例中的類內的屬性?

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

    public static ChildClass PropertyName { get; set; } 
} 

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

使用WPF XAML中,怎麼可能給一個標籤綁定到這個變量名稱?我能夠做到兩個級別(即Father.Name),但每次嘗試使用3個級別時都會出錯,如示例所示。

我所做的是:

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

但是,這是行不通的。

謝謝!

回答

0

只需直接綁定到靜態屬性:

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

這是不可能的。沒有實例ChildClass,只有在FatherClass中。因此,不可能像你所說的那樣直接訪問它。 ChildClass不是靜態的。 – jpnavarini

+0

@jpnavarini:錯了。由於'Name'是靜態的,因此不涉及實例。 – SLaks

+0

我很抱歉,它不是靜態的,只有FatherClass是靜態的。我將編輯原文。 – jpnavarini

0

不直到類的一個單身的單點(如問題),但房產的孩子類型的我使用。命名空間:Common.DeviceModel Singleton類:ConnectionStatusManager // FatherClass問題 的ChildClass:問題的ConnectionStatus // ChildClass 財產在單:狀態 在VM:

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> 
相關問題