2016-12-01 9 views
1

チェックボックスに従って項目内のTextBoxを非表示にしたい。しかし、両方のコントロールがある項目だけで。Wpf GridViewでは、コントロールを1つのアイテム内の別のコントロールにバインドする方法はありますか。

私はBoolToVisコンバータを持っています。

<ListView Name="lst1" ItemsSource="{Binding Fields}"> 
    <ListView.View> 
     <GridView> 
      <GridView.Columns> 
       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox IsChecked="False" Name="chbVis"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
        <GridViewColumn.Header> 
         <TextBlock Text="Visibility"></TextBlock> 
        </GridViewColumn.Header> 
       </GridViewColumn> 
       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBox Text="{Binding Path=Name}"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
        <GridViewColumn.Header> 
         <TextBlock Text="Field" Visibility="{Binding Path=IsChecked, ElementName=chbVis, Converter={StaticResource BoolToVis}}"></TextBlock> 
        </GridViewColumn.Header> 
       </GridViewColumn> 
      </GridView.Columns> 
     </GridView> 
    </ListView.View> 
</ListView> 

答えて

0

Iは、チェックボックスを結合するためのフィールドクラスのプロパティを作成することによって、問題を解決しました。

public bool fieldVis; 
    public bool FieldVis 
    { 
     get { return fieldVis; } 
     set 
     { 
      fieldVis= value; 
      NotifyPropertyChanged(); 
     } 
    } 

など、その後のXAMLに見える:それは魔法のように動作

<ListView Name="lst1" ItemsSource="{Binding Fields}"> 
    <ListView.View> 
     <GridView> 
      <GridView.Columns> 
       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox IsChecked="{Binding FieldVis}" Name="chbVis"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
        <GridViewColumn.Header> 
         <TextBlock Text="Visibility"></TextBlock> 
        </GridViewColumn.Header> 
       </GridViewColumn> 
       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBox Text="{Binding Path=Name}"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
        <GridViewColumn.Header> 
         <TextBlock Text="Field" Visibility="{Binding fieldVis, Converter={StaticResource BoolToVis}}"></TextBlock> 
        </GridViewColumn.Header> 
       </GridViewColumn> 
      </GridView.Columns> 
     </GridView> 
    </ListView.View> 
</ListView> 

関連する問題