カテゴリー: Visual Studio

  • WPF.NET c# Tips


    Application.Startup イベント (System.Windows) | Microsoft Docs

    <Application
        x:Class="CallBook.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Startup="CallBook_Startup"
        >
        <Application.Resources>
        </Application.Resources>
    </Application>
        public partial class App : Application
        {
            void CallBook_Startup(object sender, StartupEventArgs e)
            {
                bool startReddit = false;
                for (int i = 0; i != e.Args.Length; ++i)
                {
                    if (e.Args[i] == "/Reddit")
                    {
                        startReddit = true;
                    }
                }
                
                if (startReddit)
                {
                    RedditWindow mainWindow = new RedditWindow();
                    mainWindow.WindowState = WindowState.Minimized;
                    mainWindow.Show();
                }
                else
                {
                    CallBookWindow cbw = new CallBookWindow();
                    cbw.Show();
                }
                
            }
        }

    264 View Count
  • Visual Studio Tips


    AdministratorでVisual Studioを起動、Clean Solution、Rebuit Solution.


    [View]-[Other Windows]-[Command Window]
    Tools.DiffFiles file1.cs file2.cs

    -Diff (devenv.exe) – Visual Studio (Windows) | Microsoft Docs


    XML ドキュメントのコメントを挿入する – Visual Studio (Windows) | Microsoft Docs

    オプションを有効にするには、プロジェクトのプロパティで

    コード要素の XML コメントを挿入するには C# では「///」と入力


    237 View Count
  • How to add button to WPF DataGrid column in code programmatically

    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;
                }
            }
  • WPF DataGrid Control Tips

    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();