2012-07-24 11 views
6

, ben aşağıdaki durumdaBir WPF denetimini bir alanın mülküne bağlayabilir miyim? Ben sınıflar arasında bazı işlevleri bölmek için gerekli Çünkü

xaml kodu

<CheckBox IsChecked="{Binding MyObjectField.MyBoolean}" /> 

görünümü modeli

... 
public MyInternalObject MyObjectField; 
... 

MyObject sınıf

public class MyInternalObject { 
    ... 
    public bool MyBoolean { get; set; } 
    ... 
} 
vardık

Çoğaltmadıkça çalışmaz View Model sınıfında MyBoolean özelliğini

public bool MyBoolean 
{ 
    get { return MyInternalObject.MyBoolean; } 
    set { MyInternalObject.MyBoolean=value; } 
} 

Kimsenin bir fikri var mı?

cevap

4

Hayır yapamazsınız. bağlama sistemi DataContext'i

Mülkiyet (yani sizin VM) bulmak için yansıma kullandığı için

Bu alanlar için görünmüyor. Umarım bu yardımcı olacak.

+0

... Yardımlarınız –

+0

evet için Teşekkür bunu ve ayrıca özelliğinin setter değerini stting sonra "myBoolean" için PropertyChanged Raise tek yoludur. – ethicallogics

+0

Evet, örneği basitleştiriyordum, ama yine de teşekkürler. –

5

Henüz yapamazsınız (in WPF Version 4.5 you can bind to a static property). Ama App.xaml.cs

public partial class App : Application 
{ 
    public bool MyBoolean { get; set; } 
} 

bölgede emlak oluşturmak ve her yerden bağlanabilir. Yani VM özelliklerini kopyalayan

<CheckBox IsChecked="{Binding MyBoolean, Source={x:Static Application.Current}}"> 
+0

Teşekkürler. Bu seçeneği de bilmek güzel. –

İlgili konular