Привязка Wpf к видимости WindowsFormHost - PullRequest
1 голос
/ 02 ноября 2010

У меня есть WindowsFormsHost, видимость которого меняется с «Видимый» на «Свернутый» и наоборот в зависимости от определенных триггеров.Я также хочу иметь возможность привязать эту «Видимость» к переменной, так как мне нужно иметь возможность просматривать поле «Видимость» по определенным причинам, и я не могу просто «посмотреть» на него, потому что они находятся в двух разных проектах.(стиль, который содержит этот WindowsFormsHost, в основном представляет собой проект ресурсов).

В любом случае, у меня есть это:

    <WindowsFormsHost Grid.Row="2" Name="PART_ToggleContainer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
     Visibility="{Binding Path=IsVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,Source={StaticResource StatusProvider}}"
    >

И в родительском шаблоне управления у меня есть мультитриггер, который проверяет паруЗависимости полей и пытается скрыть форму (и скрытие работает).

<ControlTemplate.Triggers>
      <MultiTrigger>
       <MultiTrigger.Conditions>
        <Condition Property="IsBeingDragged" Value="True"/>
        <Condition Property="IsWorking" Value="False" />
       </MultiTrigger.Conditions>
       <Setter Property="IsVisibleDProp" Value="False"/>
       <Setter TargetName="PART_ToggleContainer" Property="Visibility" Value="Collapsed" />
      </MultiTrigger>
</ControlTemplate.Triggers>

Вот привязка, которую я использую для видимости, "IsVisible", в классе, который используется в качестве поставщика данных.

private Visibility IsVisibleProperty = Visibility.Visible;  


public bool bIsVisible
  {
   get { return bIsVisibleProperty; }
   set
   {
    if (bIsVisibleProperty == value)
    {
     return;
    }
    bIsVisibleProperty = value;
    OnPropertyChanged("IsVisible");
   }
  }

Установщик не срабатывает при изменении свойства.

Любые подсказки?

Я также попытался обойти эту проблему, чтобы установить эту зависимость "IsVisibleDProp", которая находится в том жепоместите как "IsBeingDragged" и "IsWorking", но он также никогда не попадет в установщик (хотя я устанавливаю два других программно, а IsVisibleDPropis устанавливаю с помощью мультитриггера).

Благодаря.

1 Ответ

0 голосов
/ 02 ноября 2010

Не уверен, что вы предполагали это, но ваша собственность называется bIsVisible и ваша привязка к свойству называется IsVisible

Также убедитесь, что параметр OnPropertyChanged соответствует изменяющемуся свойству, поэтому WPF получит из него новое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...