LibreCAD – Free Open Source 2D CAD
LibreCAD User Manual — LibreCAD 2.2.0 documentation
(816) Librecad Tutorial – YouTube
LibreCAD https://forum.librecad.org/

private void DataGridScanChannel_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
var styleCell = new Style(typeof(DataGridCell))
{
Setters = { new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Right) }
};
e.Column.Header = MemoryChannelHeader[e.PropertyName];
e.Column.CellStyle = styleCell;
DataGridTextColumn txtcol = e.Column as DataGridTextColumn;
switch (e.PropertyName)
{
case "Prog_No":
var buttonTemplate = new FrameworkElementFactory(typeof(System.Windows.Controls.Button));
var text = new FrameworkElementFactory(typeof(TextBlock));
text.SetValue(TextBlock.TextProperty, "Start");
buttonTemplate.AppendChild(text);
//buttonTemplate.AddHandler(System.Windows.Controls.Primitives.ButtonBase.ClickEvent, new RoutedEventHandler((o, e) => System.Windows.MessageBox.Show("hi")));
buttonTemplate.AddHandler(System.Windows.Controls.Button.ClickEvent, new RoutedEventHandler(Btn_Click));
DataGridScanChannel.Columns.Add(new DataGridTemplateColumn()
{
Header = "Scan",
DisplayIndex = 0,
CellTemplate = new DataTemplate() { VisualTree = buttonTemplate }
});
break;
case "Prog_Mode":
e.Cancel = true;
break;
case "Prog_Freq_Lower":
txtcol.Binding = new System.Windows.Data.Binding(e.PropertyName) { StringFormat = "{0:N0}" };
txtcol.Width = 100;
//e.Column.DisplayIndex = 1;
break;
case "Prog_Freq_Upper":
txtcol.Binding = new System.Windows.Data.Binding(e.PropertyName) { StringFormat = "{0:N0}" };
txtcol.Width = 100;
//e.Column.DisplayIndex = 2;
break;
default:
break;
}
}
DataGridのRowのBackgroundカラーを変更する
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="Background" Value="{Binding Path=StatusColor}"></Setter>
</Style.Setters>
</Style>
</Window.Resources>
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" Name="dtgTestColor" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Path=Title}"/>
</DataGrid.Columns>
</DataGrid>
public class ItemData
{
public string Title { get; set; }
public string StatusColor { get; set; }
}
DataGrid DateGrid1;
List<ItemData> list1 = new();
ItemData item1 = new();
item1.Title = "Title001";
item1.StatusColor = "Blue";
list1.Add(item1);
ItemData item2 = new();
item2.Title = "Title002";
item2.StatusColor = "LightBlue";
list1.Add(item2);
DateGrid1.ItemsSource = list1;
DateGrid1.Items.Refresh();

Bootstrap · The most popular HTML, CSS, and JS library in the world. (getbootstrap.com)
https://startbootstrap.com/
Introduction · Bootstrap v5.0 (getbootstrap.com) https://getbootstrap.com/docs/5.0/getting-started/introduction/
Examples · Bootstrap v5.0 (getbootstrap.com) https://getbootstrap.com/docs/5.0/examples/

Free Bootstrap Themes, Templates, Snippets, and Guides – Start Bootstrap
https://startbootstrap.com/
PRODUCTS
RESOURCES
SUPPORT
COMPANY
ProjectLibre is the #1 alternative to Microsoft Project. This is Project Management desktop software, we are releasing a cloud version in the future.
Downloaded over 5,100,000 times in 200 countries on all 7 continents & translated in 29 languages. InfoWorld “Best of Open Source” award. Quick Start video https://www.youtube.com/watch?v=9xwR4JCBaIU&feature=youtu.be
We have a community with over 200,000 project management members http://www.projectlibre.org ProjectLibre is compatible with Microsoft Project files. You can simply open them on Linux, Mac OS or Windows. Our new release has drop down to select your language, project cost currency and date formats. Here is a video https://www.projectlibre.com/blog/projectlibre-release-project-managers-set-language-currency-date-format-wdropdown-list
The ProjectLibre team has been the key innovators in the PM industry and releasing a future Cloud solution. Looking for developers and documentation help.