Silverlightでプログラムでデータグリッドセルをハイライト表示するにはどうすればよいですか?SilverlightでCellをハイライトする方法DataGrid
0
A
答えて
0
あなたは次の操作を行う必要があります:
- は、プロパティを追加するには、データ項目のクラスに(のはそれ
IsSelectedInChart
名前を付けてみましょう)。このプロパティはpublic
である必要があり、値が変更されるたびにINotifyPropertyChanged.PropertyChanged
イベントを発生させる必要があります。 lineseries_SelectionChanged
には、選択したポイントに対応するデータ項目があり、IsSelectedInChart
をtrue
に、false
に設定してください。DataGrid
に存在するDataGridRow
のすべてのインスタンスがそのBackground
Path=IsSelectedInChart
を持つプロパティとカスタム `へBinding
セットを持ってIValueConverter」を確認します。
コンバータは、次のようになります。
public class ValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// TODO: be more careful with nulls and non-expected values
bool isSelected = (bool)value;
return isSelected ? new SolidColorBrush(Colors.Red) : DependencyProperty.UnsetValue;
}
}
最後のステップはトリッキーです。これは、DataGridRow
Style
を無効にすることで実装できます。 1つのアプローチはhttps://stackoverflow.com/a/4268159/795861に、もう1つのアプローチはhttps://stackoverflow.com/a/3542179/795861に示されています。それらをチェックしてください。
DataGrid
に多くの行がある可能性があるため、これらの手順はすべて必要です。 UI virtualizationを使用すると、DataGridRow
にBackground
プロパティを簡単に設定することは不可能になります。なぜなら、単一の行オブジェクトが複数のデータ項目を表示するためです。したがって、スクロールで動作させる唯一の方法は、バックグラウンドをデータ項目にバインドすることです。設計時に知られている列のセルを強調表示する
UPDATE
は、代わりに、行のスタイルを設定すると、その列の定義にDataGridColumn.CellStyleプロパティを設定します。
<sdk:DataGrid>
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="theColumnToHighlight">
<sdk:DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type sdk:DataGridCell}">
<Setter Property="local:SetterValueBindingHelper.PropertyBinding">
<Setter.Value>
<local:SetterValueBindingHelper
Type="System.Windows.Controls.Control, System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
Property="Background"
Binding="{Binding IsSelectedInChart, Converter={StaticResource highlighterConverter}}"/>
</Setter.Value>
</Setter>
</Style>
</sdk:DataGridTextColumn.CellStyle>
</sdk:DataGridTextColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
作業をする必要があり、Iものの試していない。 xamlは、行全体を強調表示するために提案したのと同じことを行いますが、特定の列のセルに適用します。
0
このコードは、DataGridのセルテンプレートに従って使用できます。 cellContentは、変更したいセルへの参照を提供します。
FrameworkElement cellContent = dataGrid.Columns[0].GetCellContent(dataRow);// datarow is your row where cell intersects.
cellContent .Style = s; // assuming s is the style you want to apply
関連する問題
- 1. Silverlight DataGridでのみ行全体をハイライト表示
- 2. SilverlightでDataGridヘッダーをカスタマイズする方法は?
- 3. Silverlight DataGridでセルコンテンツをキャプチャする方法は?
- 4. Silverlight:データコンテキストでDataGridのデータグリッド行を取得する方法
- 5. Silverlight C# - 行/セルの値をDataGridでクリックする方法
- 6. SilverlightのDataGridにデータを手動で追加する方法
- 7. SilverLight Datagrid
- 8. Silverlight DataGrid - グループヘッダーテキストを
- 9. DataGrid SelectionMode = "Extended"の選択方法DataTableにバインドされたSelectionUnit = "Cell"
- 10. Silverlightで拡張DataGrid
- 11. Silverlight DataGridのすべての列を印刷する方法
- 12. フレックスDataGridリストのハイライト
- 13. Silverlight 4 DataGrid Column
- 14. Silverlight Datagrid Refresh
- 15. Silverlight Datagrid Rowクリック
- 16. SilverLight Datagridのハイパーリンクボタン
- 17. SilverLight Datagrid refresh
- 18. silverlight resize datagrid datagridsplitter
- 19. Refresh DataGrid MVVM Silverlight
- 20. Silverlightのdatagridで列をフリーズする
- 21. Silverlight 3 Datagrid。現在のソートプロパティにアクセスする方法
- 22. Silverlight DataGridで編集モードでセルのテキストの色を変更する方法は?
- 23. WPF汎用DataGrid CellTemplate - Bind to Cell値?
- 24. Silverlight DataGridの行カラーバインド
- 25. Silverlight Datagrid数値ソート
- 26. Silverlight DataGrid Refresh Xaml Files
- 27. 掛け算Silverlight Datagrid
- 28. silverlight 3 datagrid x:name issue
- 29. WCF ObservableCollectionをSilverlight DataGridにバインドする
- 30. htmlテキストをDataGridに表示する - Silverlight
特定のセルの 'BackgroundColor'を設定するだけですか、特定のデータ項目の特定のプロパティを表示するセルの色を設定したいですか?ハイライトを数秒間点滅させたい、またはデータ項目がグリッドに表示されているときはいつでも表示させたいですか?一定の色やデータの色が必要ですか?ソリューションは、要件に強く依存します。いくつかの詳細を記入してください。 –
基本的にbgcolorを設定するだけです。私のアプリケーションにチャートがあり、グラフのポイントを選択するためのlineseries_SelectionChangedイベントを記述しました。選択したポイントが与えられたら、グラフの下にあるデータグリッドの値に対応するセルの背景色(多かれ少なかれハイライト)を変更したいと思います。データグリッドには、チャートのすべての値が含まれています。 – John