2017-10-29 5 views
0

私はDataGrid 2で細胞を持っていますが、私はColorPickerで別のセルを追加したい:xctk ColorPickerの

XAML:セルを埋めるために

<DataGrid Name="dtg" Grid.Row="2" Grid.Column="0" Grid.RowSpan="3" Width="200" 
       HorizontalAlignment="Left" CanUserAddRows="False" CanUserDeleteRows="False" ScrollViewer.CanContentScroll="True" 
       ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="50,20,0,15" 
       SelectionChanged="rowSelect" AutoGenerateColumns="False" IsReadOnly="false" RowEditEnding="cellc"> 
     <DataGrid.Resources> 
      <Style TargetType="ScrollBar"> 
       <Setter Property="Background" Value="#FFBFBFBF" /> 
      </Style> 
     </DataGrid.Resources> 
     <DataGrid.Columns > 
      <DataGridTextColumn Header="n1" IsReadOnly="false" Binding="{Binding n1}" Width="*"/> 
      <DataGridTextColumn Header="n2" IsReadOnly="false" Binding="{Binding n2}" 
      </DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

クラス:

public class data 
{ 
    public int n1 { get; set; } 
    public int n2 { get; set; } 
} 

答えて

1

まず、DataクラスのタイプSystem.Windows.Media.Colorのプロパティが必要です。

public Color DataColor { get; set; } 

は、今すぐあなたのビューに拡張WPF Toolkitの名前空間を追加する必要があります。

xmlns:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit" 

あなたはDataGridTemplateColumnを使用して、カスタムテンプレートを使用してデータグリッドの列を定義することができます。そのようなテンプレートをColorPickerで追加し、定義されたプロパティをバインドするだけです。ここに例があります:

<DataGrid> 
    <DataGrid.Columns> 
     <!-- ... --> 
     <DataGridTemplateColumn Header="Color"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate x:Key="ColorCellTemplate"> 
        <xctk:ColorPicker SelectedColor="{Binding DataColor, UpdateSourceTrigger=PropertyChanged}" 
         DisplayColorAndName="True" UsingAlphaChannel="False"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <!-- ... --> 
    </DataGrid.Columns> 
</DataGrid> 
+0

ありがとう!そして別のこと:どのように私は特定のカラーピックセルの色を選択することができますか? –

+0

ピッカーのカラープロパティをデータオブジェクトにバインドして色を取得するだけです。 – Fruchtzwerg

+0

申し訳ありませんが、私は選択されたColorPickerをキャッチするために何を使用するのか分かりません。私はeditrowendingで試しましたが、色が選択されたときにイベントを投げません。特定の行で色が選択されたときを知りたい –

関連する問題