Hi, i'm having a rough fight with WPF and its Binding system. I just wanna bind a property of an instance called HPP, this property is pressure and this object exist in MainViewModel, so in MainWindow.xaml a have this:
<componentes:SetComponent x:Name="HPP_Trip_Route" Grid.Row="1" Grid.Column="1" VerticalAlignment="Top" Title="TRIP" VariableValue="{Binding HPPRoute.Pressure}" Unity="PSI" Loaded="SetComponent_Loaded" FSizeTitle="24" FSizeVariable="36" FSizeUnity="14"/>
In SetComponent:
<TextBlock x:Name="ValueSetComponent" Grid.Row="1" Text="{Binding VariableValue, RelativeSource={RelativeSource AncestorType=UserControl}}" FontSize="{Binding FSizeVariable}" HorizontalAlignment="Right" VerticalAlignment="Bottom" Foreground="#FFFFFF" Margin="0, 5, 0, 5 "/>
In MainWindow.xaml.cs:
public partial class MainWindow : Window, INotifyPropertyChanged
{
private readonly Variables GV = Variables.GetInstancia();
private MainViewModel _mainViewModel;
public MainViewModel MainViewModel
{
get { return _mainViewModel; }
set
{
_mainViewModel = value;
OnPropertyChanged();
}
}
public MainWindow()
{
InitializeComponent();
GV.MainViewModel.StartAssign(GV);
MainViewModel = GV.MainViewModel;
GV.MainViewModel.MainWindow = this;
DataContext = MainViewModel;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
I tried with RelativeSource without success. If i create a variable in MainViewModel it works. Any help?