引言
萌生这个想法的起因是因为自己用python做了一个校园网的下线与管理小程序,虽然还挺好用,但是比较简陋,只有一个小黑框。然后想新加一个图形界面。
固然Python是个好选择,但是使用python需要提前配置好python环境,不利于软件的即开即用。试想一下,把自己写好的python程序发给别人用,别人用之前还要配置一系列的环境,想想就很麻烦。
所以,就考虑用C#重写一遍,毕竟不用再重新配置环境。
先让程序跑起来:一个最简单的demo
效果如下:
点击按钮之后:
满足最小化运行的项目
在项目的bin/Release文件夹下只保留这几个文件是最小且可运行的:
显示数据:DataGrid控件的使用
用这个控件来显示数据,它长这样子:
对应xaml文件中代码如下:
<DataGrid x:Name="deviceInfoDataGrid" AutoGenerateColumns="False" Margin="270,113,236,180">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Device_name}" Header="设备名称"/>
<DataGridTextColumn Binding="{Binding Ip}" Header="设备IP地址"/>
<DataGridTextColumn Binding="{Binding Mac}" Header="设备MAC名称"/>
</DataGrid.Columns>
</DataGrid>
后端C#代码:
List<OnlineDevice> list = helper.getDeviceList();
deviceInfoDataGrid.ItemsSource = list;
说明:
- AutoGenerateColumns属性默认为True,作用是根据C#代码中的变量名自动生成列名。这里设置为False
- 下面的DataGridTextColumn标签的Binding属性:以第一个为例,将后端传递而来的列表list中的OnlineDevice元素的Device_name属性(需要有get set方法)绑定到这一列中。
- 后端代码首先生成一个List,然后赋值给dataGrid的ItemSource实现传递到前端。