2017-12-07 14 views
1

私は、コレクションのItemsourceを持つDataGridを持っています。このDataGridには、機械の軸の値がいくつか表示されます。異なる列があり、最初の重要なものはaxisNameです。最後に重要なのは "ReferenceSetting"ボタンです。DataGridColumn可視性コンバータ

このボタンを押すと、ReferenceSequenceが開始されます。現在、すべてのAxisが参照を設定するように設定されているわけではありません。このボタンは折りたたまれているか、隠されています。

設定されたすべての軸がリストに保存されます。

ここで、列の名前をボタン列のvisibilityプロパティにバインドして、コンバーターに構成をチェックするためのリストを与える方法はありますか。

ありがとうございます。

  <DataGrid Margin="8" Style="{StaticResource CoDeDataGrid}" ItemsSource="{Binding Path=TableDataGridView}" 
             AutoGenerateColumns="False" IsReadOnly="True" Name="AxisGrid"> 
       <DataGrid.Columns> 
        <DataGridTextColumn Binding="{Binding Name}"> 
         <DataGridTextColumn.HeaderTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding DataContext.Coordinatesystem, 
            Converter={StaticResource EnumToDisplayTextConverter} , RelativeSource={RelativeSource AncestorType=DataGrid}}"/> 
          </DataTemplate> 
         </DataGridTextColumn.HeaderTemplate> 
        </DataGridTextColumn> 
        ... 
        <DataGridTemplateColumn> 
         <DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
          <Button Style="{StaticResource CoDeButtonSmall}" 
            Command="{Binding Path=DataContext.OnSetReferenceCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" 
            CommandParameter="{Binding ElementName=AxisGrid, Path=SelectedItem}"> 
           <!-- Visibility="{Binding Name, Converter={StaticResource ButtonNameToVisibilityConverter}, ConverterParameter={...Property TeachAxis of My ViewModel....}">--> 
           <Image Source="C:\Users\PA\Source\Repos\Source\Common.Resources\ImageResources\TestPicture.jpg" Height="24" Width="24"/> 
          </Button> 
          </DataTemplate> 
         </DataGridTemplateColumn.CellTemplate> 
        </DataGridTemplateColumn> 
      </DataGrid.Columns> 
      </DataGrid> 
+0

確かに仕事をする必要がありますが、あなたはXAMLであなたのViewModelを定義したのか、私たちを表示する必要がありますか?あなたのDataContextですか? – Yitzchak

答えて

1

これは、あなたができる

<DataGrid Margin="8" Style="{StaticResource CoDeDataGrid}" ItemsSource="{Binding Path=TableDataGridView}" 
      AutoGenerateColumns="False" IsReadOnly="True" Name="AxisGrid"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding Name}"> 
      <DataGridTextColumn.HeaderTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding DataContext.Coordinatesystem, 
         Converter={StaticResource EnumToDisplayTextConverter} , RelativeSource={RelativeSource AncestorType=DataGrid}}"/> 
       </DataTemplate> 
      </DataGridTextColumn.HeaderTemplate> 
     </DataGridTextColumn> 
     ... 
     <DataGridTemplateColumn> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Button Style="{StaticResource CoDeButtonSmall}" 
         Command="{Binding Path=DataContext.OnSetReferenceCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" 
         CommandParameter="{Binding ElementName=AxisGrid, Path=SelectedItem}" 
         Visibility="{Binding Name, Converter={StaticResource ButtonNameToVisibilityConverter}, ConverterParameter={DataContext.TeachAxis}"> 
         <Image Source="C:\Users\PA\Source\Repos\Source\Common.Resources\ImageResources\TestPicture.jpg" Height="24" Width="24"/> 
        </Button> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid>