Socket 简易静态服务器 WPF MVVM模式(一)

主要实现功能:
Socket的简单应用
可修改IP和端口
显示来访信息
界面设计:

界面采用MVVM设计,很简陋。
前台的主要目的是
输入IP地址
输入端口
输入文件目录
开启监听和停止监听
主页面的XAML代码:
<Window x:Class="简易静态服务器.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:简易静态服务器"
xmlns:data="clr-namespace:简易静态服务器.ViewModels"
mc:Ignorable="d"
Title="小型静态服务器" Height="" Width="" MinHeight="" MinWidth="" MaxHeight="" MaxWidth="">
<Window.DataContext>
<data:MainViewModels/>
</Window.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="58*"/>
<RowDefinition Height="54*"/>
<RowDefinition Height="50*"/>
<RowDefinition Height="143*"/>
<RowDefinition Height="57*"/>
<RowDefinition Height="57*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="102*"/>
<ColumnDefinition Width="107*"/>
<ColumnDefinition Width="93*"/>
<ColumnDefinition Width="94*"/>
<ColumnDefinition Width="396*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="端口:" IsEnabled="{Binding Input}" Grid.Row="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="文件:" IsEnabled="{Binding Input}" Grid.Row="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="IP地址:" IsEnabled="{Binding Input}" Grid.Row="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBox Text="{Binding Prot}" Grid.Column="" Grid.Row="" Margin="0,8.5,0,8.5"/>
<TextBox Text="{Binding FileUrl}" Grid.Column="" Grid.ColumnSpan="" Grid.Row="" Margin="0,6.5,0,6.5"/>
<TextBox Text="{Binding IP}" Grid.Column="" Grid.ColumnSpan="" Grid.Row="" Margin="0,10,0,10"/>
<Button IsEnabled="{Binding Run}" Command="{Binding StatrCommand}" Grid.Row="" Grid.Column="" Content="启动" Margin="0,0,13,0"/>
<Button Command="{Binding StopCommand}" Grid.Row="" Grid.Column="" Content="停止" />
<ListView ItemsSource="{Binding MainClass}" Grid.Column="" Grid.RowSpan="" Margin="">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView,AncestorLevel=1},Path=ActualWidth}" >
<TextBlock Text="{Binding StocketSting}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Window>
Socket 简易静态服务器 WPF MVVM模式(一)的更多相关文章
- Socket 简易静态服务器 WPF MVVM模式(四)
最重要的一个类Socket类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u ...
- Socket 简易静态服务器 WPF MVVM模式(三)
ViewModels类 这个类其实就是个大杂烩,什么都可以用 这个类没有什么东西,最多的就是写一下xaml页面的逻辑控制,开启关闭监听 using System; using System.Colle ...
- Socket 简易静态服务器 WPF MVVM模式(二)
command类 标准来说,command会有三种模式,委托命令 准备命令 附加命令 1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand ...
- WPF MVVM模式的一些理解
/*本文转自 http://www.cnblogs.com/sirkevin/archive/2012/11/28/2793471.html */ 使用WPF+Mvvm开发一年多,期间由于对Mvvm模 ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...
- wpf mvvm模式下CommandParameter传递多参
原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递多参数,就要稍微处理一下.我暂时还没找到更好的方案,下面介绍的这 ...
- WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制
原文:WPF MVVM模式中,通过命令实现窗体拖动.跳转以及显隐控制 在WPF中使用MVVM模式,可以让我们的程序实现界面与功能的分离,方便开发,易于维护.但是,很多初学者会在使用MVVM的过程中遇到 ...
- WPF MVVM模式下的无阻塞刷新探讨
很多时候我们需要做一个工作,在一个方法体里面,读取大数据绑定到UI界面,由于长时间的读取,读取独占了线程域,导致界面一直处于假死状态.例如,当应用程序开始读取Web资源时,读取的时效是由网络链路的速度 ...
- WPF自学入门(十一)WPF MVVM模式Command命令
在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正如上一篇文章中在开始说的,MVVM的目的是为了最大限度地降低了 ...
随机推荐
- Build Assetbundle出错:An asset is marked as dont save, but is included in the build
前天Build Assetbundle的时候出错了,导致打包失败,具体日志内容如下: An asset is marked as dont save, but is included in the b ...
- requests的响应返回值显示content和text方法的区别
requests的get或者post请求,返回的响应response获取方法:content和text content用于获取图片,返回二进制数据 text用于获取内容,返回的是unicode解码字符 ...
- Centos安装php高版本
安装 1.检查当前是否有安装php rpm -qa|grep php 如果有安装PHP,那么请先删除这些安装包: yum remove php* 2.安装php源 Centos 5 安装php源: ...
- 基于FORM组件学生管理系统【中间件】
目的:实现学生,老师,课程的增删改查 models.py from django.db import models # Create your models here. class UserInfo( ...
- Java面向对象-访问控制权限
Java面向对象-访问控制权限 Java中,可以通过一些Java关键字,来设置访问控制权限: 主要有 private(私有), package(包访问权限),protected(子类访问权限),pub ...
- Mycat实战之离散分片
1 枚举分片(customer表) #### 1.1 修改配置信息加载配置文件 datanode hash-int vi partition-hash-int.txt db1=0 db2=1 [roo ...
- MySQL高可用MHA实战
MySQL高可用架构MHA介绍 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职 ...
- BigDecimal与double
前几天,系统处理double类型的加减法,出现问题. 请看题: 示例1 问, 结果是多少? 0.01? No! 结果是0.009999999999999998! 为什么会这样呢? 因为float和do ...
- 434. Number of Segments in a String 字符串中的单词个数
[抄题]: Count the number of segments in a string, where a segment is defined to be a contiguous sequen ...
- 模板模式和Comparable类
模板模式中,父类规定好了一些算法的流程,并且空出一些步骤(方法)留给子类填充 Java的数组类中静态方法sort()就是一个模板,它空出了一个compareTo的方法,留给子类填充,用来规定什么是大于 ...