На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> C# WPF видимость кнопки привязать в коде
    Подскажите пожалуйста как сделать привязку не декларативно а в коде,
    нашел только вот такое про текстБокс
    ExpandedWrap disabled
      static void BindText(TextBox textBox, string property)
      {
          DependencyProperty textProp = TextBox.TextProperty;
          if (!BindingOperations.IsDataBound(textBox, textProp))
          {
            Binding b = new Binding(property);
            BindingOperations.SetBinding(textBox, textProp, b);
          }
      }


    по аналогии пытаюсь переделать под себя
    ExpandedWrap disabled
      DependencyProperty visStPan = stpans[i].Visibility  ;
                          
      if (!BindingOperations.IsDataBound(stpans[i], visStPan))
      {
       Binding b = new Binding("{ Binding IsChecked, Converter = { StaticResource booleanToVisibilityConverter }, ElementName = chBox001 }");
                              BindingOperations.SetBinding(stpans[i], visStPan, b);
      }


    но показывает ошибку типов
    ExpandedWrap disabled
      ........
      ОшибкаCS0029Не удается неявно преобразовать тип "System.Windows.Visibility" в "System.Windows.DependencyProperty".

    показывает на первую строку

    подскажите как динамически при создании кнопки в коде создавать и привязки

    Добавлено
    когда мы декларативно объявляем биндинг в XAML , то делаем так
    ExpandedWrap disabled
      <Window.Resources>
        <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/>
      </Window.Resources>
       
      <Button  x:Name="but001" Visibility="{Binding IsChecked, Converter={StaticResource booleanToVisibilityConverter}, ElementName=chBox1}" / >
       
      <CheckBox x:Name="chBox1"    IsChecked="True"   />


    т.е. используется конвертор

    а как теперь через код объявить и применить конверотор в
    ExpandedWrap disabled
      DependencyProperty видКн = кнопки[i].Visibility  ;
      На другом форуме подсказали
      ExpandedWrap disabled
        var btn = new Button();
         
        var bind = new Binding();
        //checkBox - объкт чекбокса
        bind.Source = checkBox;
        bind.Path = new PropertyPath("IsChecked");
        bind.Converter = new BooleanToVisibilityConverter ();
         
        BindingOperations.SetBinding(btn, Button.VisibilityProperty, bind);
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0193 ]   [ 17 queries used ]   [ Generated: 28.03.24, 19:14 GMT ]