私はこのようなデータグリッドにバインドされたコンピュータ名を持つSQLデータベースがあります:あなたがクリックしたときにC#のWPFのデータグリッド:プログラムでバインドされた列に映像ソースを変更
<Grid.Resources>
<ResourceDictionary>
<local:FileIconConverter2 x:Key="FileIconConverter2"/>
<BitmapImage x:Key="Image-Unknown" UriSource="../Images/Status-Unknown.ico" />
<BitmapImage x:Key="Image-Good" UriSource="../Images/Status-Good.ico" />
</ResourceDictionary>
</Grid.Resources>
<DataGrid Name="datagrid1" AutoGenerateColumns="False" IsReadOnly="True" SelectionChanged="datagrid1_SelectionChanged">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Status" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{StaticResource Image-Unknown}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Date d m yyyy" Binding="{Binding 'Date d m yyyy'}"/>
<DataGridTextColumn Header="Device Name" Binding="{Binding DeviceName}"/>
<DataGridTextColumn Header="OS" Binding="{Binding OS}"/>
<DataGridTextColumn Header="OS" Binding="{Binding Model}"/>
<DataGridTextColumn Header="EOL" Binding="{Binding DeviceAge}"/>
<DataGridTextColumn Header="Location" Binding="{Binding Location}"/>
<DataGridTextColumn Header="IP" Binding="{Binding IP}"/>
<DataGridTextColumn Header="MAC" Binding="{Binding Mac}"/>
</DataGrid.Columns>
私がやろうとしています何がありますステータス列のイメージを更新して、コンピュータがイメージを変更してオンラインになっているかどうかを確認します。 ステータス列はデータベースにありません。 状況欄の内容を変更しようとすると、イメージではなく[アイコン]または[ビットマップ]テキストが表示され、スクロールしてイメージをデフォルトに戻します。
ここには がありますか?
編集: テーブルに100個のエントリを入れることができる場合は、行が選択されているときにのみオンライン状態を確認したいと思う。 myClass.GetCellコードは、このpost.
から来
private void datagrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid dataGrid = sender as DataGrid;
DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(dataGrid.SelectedIndex);
DataGridCell rowColumn = dataGrid.Columns[2].GetCellContent(row).Parent as DataGridCell;
string CellValue = ((TextBlock)rowColumn.Content).Text;
log.Warn(CellValue);
//myclass.GetCell(datagrid1, row.GetIndex(), 0).Content = Properties.Resources.Status_Good;
myclass.GetCell(datagrid1, row.GetIndex(), 0).Content = (Bitmap)System.Drawing.Image.FromFile(@".\Images\Status-good.ico");
}
しかし、あなたはこのスクリーンショットで見ることができるように、私はテキストのみを取得し、:だから私はこのようにDataGrid1にSelectionChangedイベントを使用しようとしています画像ではありません。 Screen Shot
これは一度にすべての行を更新すると思いますが、ユーザーが行を選択したときにステータスを変更することのみを検討しています。元の投稿を更新して、自分のdatagrid1_SelectionChangedを表示しました –