Question

The XAML code is as follows:

<Helper:BooleanVisibilityValueConverter x:Key="BoolToVisible" />
   <Control x:Name="ResizeDecorator" MouseMove="ResizeDecorator_MouseMove" Template=" {StaticResource ResizeDecoratorTemplate}" Visibility="{Binding IsButtonVisible,Converter= {StaticResource ResourceKey=BoolToVisible},RelativeSource={RelativeSource  TemplatedParent}}" />
<Helper:BooleanVisibilityValueConverter x:Key="BoolToVisible" />
<Control x:Name="ResizeDecorator"  MouseMove="ResizeDecorator_MouseMove" Template="{StaticResource ResizeDecoratorTemplate}" Visibility="{Binding IsButtonVisible,Converter={StaticResource ResourceKey=BoolToVisible},RelativeSource={RelativeSource TemplatedParent}}"  />

The ViewModel code:

private bool _IsButtonVisible;
public bool IsButtonVisible
{
    get { return _IsButtonVisible; }
    set
    {
        _IsButtonVisible = value;
        NotifyPropertyChanged("IsButtonVisible");
    }
}

IsButtonVisible =false;

Can anyone tell me where am I going wrong?

Was it helpful?

Solution

I'm guessing that the problem is that you are binding to IsButtonVisible on your templated parent. Instead you need to bind to IsButtonVisible on the ViewModel/DataContext of your templated parent - i.e.

Visibility="{Binding DataContext.IsButtonVisible,Converter={StaticResource ResourceKey=BoolToVisible},RelativeSource={RelativeSource TemplatedParent}}"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top