Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
https://www.itnetwork.cz/csharp
Avatar
Majkel
Člen
Avatar
Majkel:30.10.2015 13:53

Ahoj, mám problém s UpdateSourceTrig­ger=PropertyChan­ged. Když zadám do textboxu jakýkoli text, tak by měl být button enable, ale zůstává pořád disabled. Nevíte někdo, kde může být problém?

LoginView.xaml

<TextBox x:Name="UserLogin" Text="{Binding Path=UserLogin, UpdateSourceTrigger=PropertyChanged}" Width="150" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,10"></TextBox>
<Button x:Name="UserLoginAction">Login</Button>

LoginViewModel.cs

class LoginViewModel : Screen, IShell
    {
        IWindowManager WindowManager { get; set; }

        private string userLogin;
        public string UserLogin
        {
            get { return userLogin; }
            set { userLogin = value; NotifyOfPropertyChange(() => UserLogin); }
        }

        private string userPassword;
        public string UserPassword
        {
            get { return userPassword; }
            set { userPassword = value; NotifyOfPropertyChange(() => UserPassword); }
        }

        // Konstruktor
        public LoginViewModel()
        {

        }

        #region ACTIONS

        // USER LOGIN ACTION
        public void UserLoginAction()
        {
            MessageBox.Show(UserLogin);
        }
        public bool CanUserLoginAction()
        {
            return !String.IsNullOrWhiteSpace(UserLogin);
        }

        #endregion
    }
Editováno 30.10.2015 13:54
 
Odpovědět
30.10.2015 13:53
Avatar
Marian Benčat:26.2.2016 0:44

Nevim jak v caliburn, ale v beznem WPF musite budto notifikovat i o zmene CanUserLoginAction:

OnPropertyChan­ged("CanUserLo­ginAction")

Pravdepodobne budete muset i v caliburnu..? Notifikovat pri zmene username..

Nahoru Odpovědět
26.2.2016 0:44
Totalitní admini..
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Marian Benčat:26.2.2016 1:18

No a ta druhá možnost je udělat to přes command a can execute :-) ty se totiž "refreshují" při každém eventu na UI (jako je klik, lost focus, máčknutí klávesy atp.) případně jde vyvolat ručně (InvalidateRe­querySuggested)

Nahoru Odpovědět
26.2.2016 1:18
Totalitní admini..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.