Dzień dobry;
Piszę program desktopowy - WPF . Chciałem zrobić odblokowywanie zakładek w programie po poprawnym połączeniu z bazą.
Natknąłem się na problem połączenia dwóch oddzielnych plików xaml w MVVM .
Oto kod:
using System.ComponentModel;
using System.Windows;
using System.Windows.Input;
using SimpleMvvmToolkit;
namespace Desktp_appi.ViewModels
{
public class LogowanieViewModel : INotifyPropertyChanged
{
private bool _isLogged;
public bool IsLogged
{
get { return _isLogged; }
set
{
if (value != _isLogged)
{
_isLogged = value;
RaisePropertyChanged("IsLogged");
}
}
}
private DelegateCommand _savePersonCommand;
public ICommand SavePersonCommand
{
get
{
if (_savePersonCommand == null)
_savePersonCommand = new DelegateCommand(SaveExecuted,SaveCanExecute);
return _savePersonCommand;
}
}
public bool SaveCanExecute()
{
return true;
}
public void SaveExecuted()
{
IsLogged = true;
MessageBox.Show(IsLogged.ToString());
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
widok logowania :
<Button Content="{Binding Source={StaticResource Jezyk}, Path=Logowanie}" Command="{Binding SavePersonCommand}" HorizontalAlignment="Left" Margin="161,146,0,0" VerticalAlignment="Top" Width="75"/>
widok głównego okna z zakładkami ( wlasciwość tabitemu )
IsEnabled="{Binding Source={StaticResource IsLogged}, Path=IsLogged, Mode=OneWay}"
Oraz plik app.xaml
<l:LogowanieViewModel x:Key="IsLogged"></l:LogowanieViewModel>
Z tego co mi się wydaje to zastosowałem w zły sposób INotifyPropertyChanged, ale nie moge odszukać błędu.
Czy w ten sposób można łączyć kontrolki na różnych widokach ? Proszę o pomoc