2016-11-22 152 views
0

DataTableから特定の行を非表示にしようとしていますが、列を非表示にすることしかできません。WPFでDataGridのDataTableから行を非表示C#

DataGridViewに関連するいくつかのソリューションが見つかりましたが、それは同じではなく、私のためには機能しませんでした。私は私のXAMLファイルで

:その上でデータを表示する

<DataGrid Visibility="Visible" HorizontalAlignment="Stretch" Name="dataGrid_first" VerticalAlignment="Stretch" Width="Auto" Grid.Column="1" Grid.Row="2" > 

</DataGrid> 

次のように、私がやっている:

dataGrid_first.ItemsSource = myDataTable.AsDataView(); 

そして、それは働いています。列を非表示にするには、次のようにします。

dataGrid_first.Columns[i].Visibility = Visibility.Hidden; 

ここで、「i」は適切な列番号です。

行を非表示にするにはどうすればよいですか?

+0

特定の行を非表示にする条件は何ですか? 1つの簡単なアプローチは、DataViewの 'Filter'プロパティを使用することです。 – ASh

+0

私は2つの似たようなデータグリッドを持ち、2つのデータベースの違いを表示しようとしています。いくつかの簡単な例を書けますか? – Tatarinho

+0

グリッドにデータを与えてから、その一部を非表示にするのはなぜですか?なぜあなたはそれを表示したいデータを与えるだけではありません。言い換えると、まずデータをフィルタリングします。 –

答えて

0

私はフィルタリングもお勧めします。さらに、私はDataTableを少し古く使用しません。あなたはのDataContextを設定しない場合は、そこのDataViewプロパティを追加することができますので、あなたのコンポーネントがコンテキストになります(しかし、あなた場合のviewmodelsを使用

<DataGrid ItemsSource="{Binding DataView}"> 
       <DataGrid.RowStyle> 
        <Style TargetType="DataGridRow"> 
         <!-- your column name, visibility was not working if there is no converter --> 
         <Setter Property="Visibility" Value="{ Binding Path=IsVisible ,Converter={StaticResource BoolToVisibilityConverter}}"></Setter> 
        </Style> 
       </DataGrid.RowStyle> 
      </DataGrid> 
あなたのViewModelに

myDataTable.Rows[i]["IsVisible"] = false; 

で行非表示にすることができます できる)。 BoolToVisibilityConverter

関連する問題