Bir ViewModel C # bir bileşen erişme

oy
1

Ben genişleten bir sınıf var ViewModelBaseC #. Bir onay kutusunu bir tetikleyici zaten var:

public bool PrintPackingCode
{
    get
    {
        return this.reportConfiguration.PrintPackingCode;
    }

    set
    {
        this.reportConfiguration.PrintPackingCode = value;
        this.OnPropertyChanged(PrintPackingCode);
    }
}

O olay kanca ve bir sunum yapmak isteyen GroupBoxdevre dışı bırakmak için, henüz GroupBox erişmek için bir yol bulamıyorum. Gelen .xamlkutumda bir isim verdi PackingcodeGroupBox. Bulduğum tüm yöntemler ve ipucu aplieable değildi. Benim çalışır inculded:

Direct Access: PackingcodeGroupBox.Enabled = false;
Using a x:Name
this.Resources[mykey]

Burada bazı Kodu:

//At program start assign the view it's view model:
new SmlKonfigurationWindow(new SmlKonfigurationWindowVm(reportConfiguration, smlKonfigurationDialogVm));

public SmlKonfigurationWindow(ISmlKonfigurationWindowVm viewModel)
{
   this.DataContext = viewModel;
   this.viewModel = viewModel;

   this.InitializeComponent();
   this.ShowDialog();
}

xaml:

<CheckBox Content=Content IsChecked={Binding Path=PrintPackingCode, UpdateSourceTrigger=PropertyChanged} Name=PrintPackingCode/>
<GroupBox Header=Verpackungscode Name=VerpackungscodeGroupbox>
   //Stuff to be disabled                      
</GroupBox>
Oluştur 08/11/2018 saat 11:20
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
2

IsEnabled Eğer GroupBox devre dışı eğer grup kutusunun içinde bütün kontroller de devre dışı olacağı anlamına gelir ambiental özelliktir.

şöyle GroupBox üzerinde bir bağlama eklemek için deneyin:

IsEnabled="{Binding PrintPackingCode}"

Ayrıca onay kutusunu isim vermek olmadığını kutuyu IsEnabled bağlayabilir.

<CheckBox x:Name="myCheckBox" .../>
<GroupBox IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}"/>
Cevap 08/11/2018 saat 12:18
kaynak kullanıcı

oy
1

senin vm Açık söylemek yeni bir özellik oluşturmak

private bool _isGroupEnabled;

public bool IsGroupEnabled
{
    get
    {
        return _isGroupEnabled;
    }

    set
    {
        _isGroupEnabled = value;
        this.OnPropertyChanged("IsGroupEnabled");
    }
}

Şimdi ayarlayarak bildirmek sürecine kravat setFORPrintPackingCode

   set
    {
        this.reportConfiguration.PrintPackingCode = value;
        IsGroupEnabled = !value; // reverse of packing to enable/disable.
        this.OnPropertyChanged("PrintPackingCode");
    }

Şimdi böyle gibi GroupBox bağlamak:

isEnabled = "{Binding IsGroupEnabled}"
Cevap 08/11/2018 saat 12:21
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more