簡體   English   中英

將以編程方式生成的DataGridTextColumn的Visibility屬性綁定到復選框

[英]Binding programmatically generated DataGridTextColumn's Visibility property to a checkbox

我正在嘗試將DataGridTextColumn的visibility屬性綁定到組合框(cbIP)的IsChecked值。 對於大多數列,我用XALL解決了這樣的問題:

<DataGridTextColumn Header="Time" Binding="{Binding MeasureTime}" Visibility="{Binding Source={x:Reference cbMeasureTime}, Path=IsChecked, Converter={StaticResource BoolToVisConverter}}"></DataGridTextColumn>

但是,某些列會考慮基於不同長度(因此列數不同)的數組的值。 這個我在后面的代碼中創建沒有問題。 唯一的問題是可見性屬性。 我走到這一步:

private void Page_Loaded_1(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < ds.NumberOfIPValues; i++)
            {
                DataGridTextColumn col = new DataGridTextColumn() { Header = String.Format("IP #{0} (mV/V)", i + 1) };
                col.Binding = new Binding(String.Format("IP[{0}]",i));

                Binding b = new Binding("Visibility");
                b.Source = cbIP;
                b.Path = new PropertyPath(typeof(CheckBox).GetProperty("IsChecked"));
                b.Converter = new BoolToVisibilityConverter();

                BindingOperations.SetBinding(col, DataGridTextColumn.VisibilityProperty, b);

                ViewInTableDataGrid.Columns.Add(col);              
            }          
        }  

不用說,它不起作用。 我看到列,但復選框不起作用。 (適用於XAML生成的列。

我做錯了什么?

提前致謝!

我的工作方式是另一種方式 - >試試這個列的列用於生成復選框,然后切換visiblity ..

<ItemsControl ItemsSource="{Binding Path=Columns, ElementName=dgSearchResult, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True}" >
   <ItemsControl.ItemTemplate>
      <DataTemplate >
         <Grid>
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="5"/>
            <ColumnDefinition Width="Auto"/>
          </Grid.ColumnDefinitions>
             <CheckBox Content="{Binding Path=Header}" IsChecked="{Binding Path=Visibility, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True, Mode=TwoWay, Converter={StaticResource BooleanToHiddenConvertor}}" />
          </Grid>
     </DataTemplate>
  </ItemsControl.ItemTemplate>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM