سؤال

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?

هل كانت مفيدة؟

المحلول

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}}"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top