an example for trying code hightlighting when using MarkDown as default editor


SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13


$$
\rho = \sqrt{(\Delta x)^{2}+(\Delta y)^{2}} \
\lim\limits_{x \rightarrow x_{0}} f(x) = f(x_{0})
$$


using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Drawing;  
using System.Runtime.CompilerServices;  
using System.Windows.Forms;  

// Either change the following namespace to the name of your project,   
// or name your project with the following name when you create it.  
namespace TestNotifyPropertyChangedCS  
{  
    // This form demonstrates using a BindingSource to bind  
    // a list to a DataGridView control. The list does not  
    // raise change notifications. However the DemoCustomer type   
    // in the list does.  
    public partial class Form1 : Form  
    {  
        // This button causes the value of a list element to be changed.  
        private Button changeItemBtn = new Button();  

        // This DataGridView control displays the contents of the list.  
        private DataGridView customersDataGridView = new DataGridView();  

        // This BindingSource binds the list to the DataGridView control.  
        private BindingSource customersBindingSource = new BindingSource();  

        public Form1()  
        {  
            InitializeComponent();  

            // Set up the "Change Item" button.  
            this.changeItemBtn.Text = "Change Item";  
            this.changeItemBtn.Dock = DockStyle.Bottom;  
            this.changeItemBtn.Click +=  
                new EventHandler(changeItemBtn_Click);  
            this.Controls.Add(this.changeItemBtn);  

            // Set up the DataGridView.  
            customersDataGridView.Dock = DockStyle.Top;  
            this.Controls.Add(customersDataGridView);  

            this.Size = new Size(400, 200);  
        }  

        private void Form1_Load(object sender, EventArgs e)  
        {  
            // Create and populate the list of DemoCustomer objects  
            // which will supply data to the DataGridView.  
            BindingList<DemoCustomer> customerList = new BindingList<DemoCustomer>();  
            customerList.Add(DemoCustomer.CreateNewCustomer());  
            customerList.Add(DemoCustomer.CreateNewCustomer());  
            customerList.Add(DemoCustomer.CreateNewCustomer());  

            // Bind the list to the BindingSource.  
            this.customersBindingSource.DataSource = customerList;  

            // Attach the BindingSource to the DataGridView.  
            this.customersDataGridView.DataSource =  
                this.customersBindingSource;  

        }  

        // Change the value of the CompanyName property for the first   
        // item in the list when the "Change Item" button is clicked.  
        void changeItemBtn_Click(object sender, EventArgs e)  
        {  
            // Get a reference to the list from the BindingSource.  
            BindingList<DemoCustomer> customerList =  
                this.customersBindingSource.DataSource as BindingList<DemoCustomer>;  

            // Change the value of the CompanyName property for the   
            // first item in the list.  
            customerList[0].CustomerName = "Tailspin Toys";  
            customerList[0].PhoneNumber = "(708)555-0150";  
        }  

    }  

    // This is a simple customer class that   
    // implements the IPropertyChange interface.  
    public class DemoCustomer : INotifyPropertyChanged  
    {  
        // These fields hold the values for the public properties.  
        private Guid idValue = Guid.NewGuid();  
        private string customerNameValue = String.Empty;  
        private string phoneNumberValue = String.Empty;  

        public event PropertyChangedEventHandler PropertyChanged;  

        // This method is called by the Set accessor of each property.  
        // The CallerMemberName attribute that is applied to the optional propertyName  
        // parameter causes the property name of the caller to be substituted as an argument.  
        private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")  
        {  
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }  

        // The constructor is private to enforce the factory pattern.  
        private DemoCustomer()  
        {  
            customerNameValue = "Customer";  
            phoneNumberValue = "(312)555-0100";  
        }  

        // This is the public factory method.  
        public static DemoCustomer CreateNewCustomer()  
        {  
            return new DemoCustomer();  
        }  

        // This property represents an ID, suitable  
        // for use as a primary key in a database.  
        public Guid ID  
        {  
            get  
            {  
                return this.idValue;  
            }  
        }  

        public string CustomerName  
        {  
            get  
            {  
                return this.customerNameValue;  
            }  

            set  
            {  
                if (value != this.customerNameValue)  
                {  
                    this.customerNameValue = value;  
                    NotifyPropertyChanged();  
                }  
            }  
        }  

        public string PhoneNumber  
        {  
            get  
            {  
                return this.phoneNumberValue;  
            }  

            set  
            {  
                if (value != this.phoneNumberValue)  
                {  
                    this.phoneNumberValue = value;  
                    NotifyPropertyChanged();  
                }  
            }  
        }  
    }  
}

猜你喜欢

转载自www.cnblogs.com/onecrazystone/p/9625332.html