In WindowViewModel There is a property called statusBar
In StatusBarViewModel , There is a property called public BatteryIndicatorViewModel batIndicatorViewModel
In BatteryIndicatorViewModel , There is a property called public bool IsLowBattery
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding statusBar.batIndicatorViewModel.IsLowBattery}" Value="true" />
</MultiDataTrigger.Conditions>
IsLowBattery property is bound to CheckBox, in window2 and which is bound to WindowViewModel
<CheckBox IsChecked="{Binding Path=statusBar.batIndicatorViewModel.IsLowBattery}" Content="Low Battery" Grid.Column="2" Margin="0,0,34.743,14.04" Grid.Row="1" />
It shows the following error:- System.Windows.Data Error: 39 : BindingExpression path error: 'statusBar' property not found on 'object' ''StatusBarViewModel' (HashCode=25431989)'. BindingExpression:Path=statusBar.batIndicatorViewModel.IsLowBattery; DataItem='StatusBarViewModel' (HashCode=25431989); target element is 'ContentControl' (Name=''); target property is 'NoTarget' (type 'Object')
Code.....
Window2.xaml.. I have a HeaderedItemsControl in Window2.xaml which is bound to workspaces
<Grid>
<HeaderedItemsControl ItemsSource="{Binding Path=Workspaces}" Header="StatusBar" />
<CheckBox IsChecked="{Binding statusBar.batIndicatorViewModel.IsLowBattery}" Content="Low Battery" Grid.Column="2" Margin="0,0,34.743,14.04" Grid.Row="1" />
<CheckBox IsChecked="{Binding statusBar.batIndicatorViewModel.IsCharging}" Content="Charging" Grid.Column="1" Grid.ColumnSpan="2" Height="15.96" Margin="5.76,0,48.67,0" Grid.Row="2" VerticalAlignment="Top" />
</Grid>
WindowViewModel.cs..
WindowViewModel which is bound to window2 datacontext
public class WindowViewModel:WorkspaceViewModel
{
public ObservableCollection<WorkspaceViewModel> Workspaces
public StatusBarViewModel StatusBarVM;
private void ShowStatusBar()
{
StatusBarVM = new StatusBarViewModel();
this.Workspaces.Add(StatusBarVM);
this.SetActiveWorkspace(StatusBarVM);
}
StatusBar.xaml..
<usercontrol>
<Grid Background="Black" Height="20" Width="240">
<vw:BatteryIndicator Height="20" Width="30" IsTabStop="False" VerticalAlignment="Top" HorizontalAlignment="Right" Grid.Column="1"/>
<!—some other usercontrols are used here -- >
</Grid>
</UserControl>
StatusBarViewModel.cs..
public class StatusBarViewModel : WorkspaceViewModel
{
public BatteryIndicatorViewModel BatteryIndicatorVM;
}
BatteryIndicatorViewModel.cs..
public class BatteryIndicatorViewModel : WorkspaceViewModel
{
Public bool IsCharging;
public bool IsLowBattery;
}
Now my question is how do I bind IsCharging in BatteryIndicatorViewModel to low battery checkbox in windowviewmodel