2012-02-18 42 views
0

私はこれを達成しようとしています:ユーザーがDataGridで1つまたは複数のセルを選択すると、すべての複製の背景色を変更する必要があります選択と値に応じてWPF DataGridセルの背景色を変更する

public MainWindow() 
{ 
    InitializeComponent(); 
    DataTable dt = CreateDataTable(); 

    dataGrid1.ItemsSource = dt.DefaultView; 
} 

は、だから私はDataTableの(10行、25列)を使用して、データグリッドを移入:

は私が

<Window x:Class="NotesOnFretboard.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="true" Margin="12,110,12,29" Name="dataGrid1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" IsReadOnly="True" /> 
    </Grid> 
</Window> 

コードの後ろに、このXAMLを持っています。 このデータテーブルには、重複した値がいくつかあります。

ユーザーがDataGridで1つまたは複数のセルを選択すると、重複するすべてのセルの背景色が変更されます。

助けてください!

//あなたは この包括的なガイドをチェックアウトすることを達成するためにトリガを使用する必要がありアンダース

+0

?データ構造は何ですか?これはデータ構造に反映する方がずっと簡単です。 –

+0

データ構造はObservablCollection >です。 Noteはクラスです。注意{public string Name {get;セット; } public int Octave {get;セット; } public int Midi {get;セット; }}しかし、DataGridにリストのリストを表示する方法が見つからないため、Nameプロパティを使用してDataTableを作成します。重複はMidiプロパティにあります – Andis59

答えて

1

:それは強調されるべきかどうかを示すプロパティを持つようにStyling Microsoft’s WPF datagrid

+0

あなたの答えをありがとう!私は見て、これを試してみる... – Andis59

1

をあなたのコレクションクラスを変更することができますそうでない場合は、そのプロパティをコンバーターを介して色を変更する要素プロパティにバインドします。 あなたは選択/クリックに反応して、あなたが望む基準に応じてItemSourceの 'selected'プロパティをtrue/falseに変更できます。

だから、のようなもの:あなたが結合しているもの

<sdk:DataGrid x:Name="NoteList" 
    AutoGenerateColumns="False" 
    GridLinesVisibility="None" 
    HeadersVisibility="None" 
    IsReadOnly="True" 
    ItemsSource="{Binding NoteList,Mode=OneWay}"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTemplateColumn Width="Auto"> 
      <sdk:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding NoteDescription, Mode=OneWay}" 
          Background="{Binding NoteHighlighted, 
           Converter={StaticResource BooleanToColourConverter}}"/> 
       </DataTemplate> 
      </sdk:DataGridTemplateColumn.CellTemplate> 
     </sdk:DataGridTemplateColumn> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid>