Data trigger nie sprwadza poprawnie warunku

Data trigger nie sprwadza poprawnie warunku
gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

Witajcie! :)
Mam sobie UserControl w którym zmienia się flaga:

Kopiuj
private bool accountExist;
        public bool AccountExist
        {
            get
            {
                return accountExist;
            }
            private set
            {
                accountExist = value;
                if (accountExist == true)
                    MessageBox.Show("true");
                else
                    MessageBox.Show("false");
                OnPropertyChanged("AccountExist");
            }
        }
 

Chcę zmienić tło Grida za pomocą tej flagi, niestety nie mogę dojść dlaczego w xamlu pokazuje tak, jakby wartość była zawsze false.

Kopiuj
<Grid.Style>
            <Style TargetType="Grid">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=AccountExist}" Value="False">
                        <Setter Property="Background" Value="Blue"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Path=AccountExist}" Value="True">
                        <Setter Property="Background" Value="Black"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Grid.Style> 

Pokazuje mi się cały czas niebieskie tło.

Dodatkowe informacje:

  1. W konstruktorze:
Kopiuj
InitializeComponent();
            this.DataContext = this;
            PersonExist = false;
            AccountExist = false; 
  1. Po zalogowaniu się na konto pokazuje mi się MessageBox z wartością True, czyli wartość flagi się zmienia, lecz trigger tego nie wyłapuje.
  2. PropertChanged
Kopiuj
#region INotifyPropertyChanged
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(string propertyName)
        {
            var handler = this.PropertyChanged;
            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
        }
        #endregion
 

Jak potrzeba więcej informacji piszcie czego potrzebujecie aby mi pomóc.

gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

Potrafi ktoś mi pomóc? Nie potrafię określić co gdzie robię źle : /

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
0

A próbowałeś tak?

Kopiuj
Binding="{Binding AccountExist}"
gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
1

Rozwiązałem problem. Nie powiem jak bo mi wstyd. Albo powiem... stworzyłem metody z INotyfyPropertyChanged ale nie dodałem samego interfejsu...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.