2017-12-07 4 views
1

Ich habe ein DataGrid mit einer Itemsource einer Sammlung. Dieses DataGrid zeigt mir einige Werte der Achse einer Maschine. Es gibt verschiedene Spalten, die erste wichtige ist der axisName. Die letzte wichtige ist die Schaltfläche "ReferenceSetting".DataGridColumn Sichtbarkeit mit Konverter

Nach dem Drücken dieser Taste wird eine ReferenceSequence gestartet. Da nicht alle Achsen so konfiguriert sind, dass sie eine Referenz festlegen, sollten diese Schaltflächen ausgeblendet oder ausgeblendet sein.

Alle konfigurierten Achsen werden in einer Liste gespeichert.

Wie kann ich nun den Namen der Spalte an die Sichtbarkeitseigenschaft der Schaltfläche Spalte binden und dem Konverter die Liste geben, um die Konfiguration zu überprüfen?

Danke für Ihre Hilfe.

  <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

Sicher können Sie, aber Sie brauchen, um uns zu zeigen, wie haben Sie Ihre Viewmodel in der XAML definiert? Ist es dein DataContext? – Yitzchak

Antwort

1

Dies sollte den Job

<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> 
Verwandte Themen