1.前台Grid定义

        <!--数据绑定-->
<DataGrid Grid.Row="1"
Name="gridOne" Margin="10"
ColumnWidth="150"
AlternatingRowBackground="Linen"
AutoGenerateColumns="False"
>
<DataGrid.Columns>
<DataGridTextColumn Header="域名全称" Binding="{Binding HostName ,Mode=OneWay}"/>
<DataGridTextColumn Header="IP地址" Binding="{Binding IP,Mode=OneWay}"></DataGridTextColumn>
<DataGridCheckBoxColumn Header="是否启用" Binding="{Binding IsEnable,Mode=OneWay}" Width="80">
</DataGridCheckBoxColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="删除"
Width="100"
Click="Button_Click_1"
Uid="{Binding IP ,Mode=OneWay}"
ContentStringFormat="{Binding HostName,Mode=OneWay}">
</Button> <!--Button 绑定显示内容-->
<!--<Button
Width="100"
Click="Button_Click_1">
<Button.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="IP"/>
<Binding Path="HostName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Button.Content>
</Button>--> <!--TextBox 绑定显示内容-->
<!--<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="IP"/>
<Binding Path="HostName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>--> </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

2.后台代码处理

        HostsHelper _helper = new HostsHelper();
public MainWindow()
{
InitializeComponent();
//绑定列表
Rebind();
}
//添加域名和IP绑定
private void Button_Click(object sender, RoutedEventArgs e)
{
string ip = txtIp.Text;
string hostname = txtHostName.Text;
if (string.IsNullOrEmpty(hostname))
{
txtHostName.Focus();
ShowResult("请输入域名");
return;
}
if (string.IsNullOrEmpty(ip))
{
txtIp.Focus();
ShowResult("请输入IP地址");
return;
} //添加结果
_helper.Add(new HostData(true, ip, hostname));
MessageBox.Show("添加成功");
//重新绑定
Rebind();
}
//重新绑定结果
public void Rebind()
{
gridOne.ItemsSource = _helper.HostDatas;
gridOne.Items.Refresh();
}
//显示结果
public void ShowResult(string str)
{
Result.Content = str;
}
//删除内容
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
MessageBoxResult result = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
_helper.Remove(new HostData(true,btn.Uid.ToString(),btn.ContentStringFormat.ToString()));
Rebind();
}
}

WPF DataGrid 之数据绑定--实例2的更多相关文章

  1. DataGrid 简单数据绑定实例1

    1.默认数据显示(自动显示列) 后台绑定 //DataGrid 数据绑定 dataGridOne.ItemsSource = _Context.Info.ToList(); 前台定义 <Data ...

  2. DataGrid简单数据绑定实例2

    1.Image列显示: 后台绑定: //获取文件夹下的图片 string path = @"K:\Picture\jpg"; private void Button_Click(o ...

  3. WPF DataGrid 之数据绑定

    1. Auto generation of columns 最简单的方法莫过于让DataGrid根据数据源中的字段自动生成列了: 根据实体类的公共属性, 能够自动生成四种类型的数据列,对应关系如下: ...

  4. WPF入门教程系列十五——WPF中的数据绑定(一)

    使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能.WPF的数据绑定跟Winform与ASP.NET中的数 ...

  5. WPF DataGrid常用属性记录

    WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭 ...

  6. WPF中的数据绑定!!!

    引用自:https://msdn.microsoft.com/zh-cn/magazine/cc163299.aspx  数据点: WPF 中的数据绑定 数据点 WPF 中的数据绑定 John Pap ...

  7. WPF学习之数据绑定

    WPF中的数据绑定提供了很强大的功能.与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,例如Binding对象的自动通知/刷新,Converter,Validation Rules,Tw ...

  8. 编写 WPF DataGrid 列模板,实现更好的用户体验

    Julie Lerman 下载代码示例 最近我在为一个客户做一些 Windows Presentation Foundation (WPF) 方面的工作. 虽然我提倡使用第三方工具,但有时也会避免使用 ...

  9. WPF DataGrid 控件的运用

    WPF DataGrid 控件的运用 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-23 参考: King Cobra 博客 ...

随机推荐

  1. java下文件遍历,与删除

    package cn.stat.p1.file; import java.io.File; public class newfilelist { /** * @param args */ public ...

  2. Say bye to CMake and Makefile

    用了几年的CMake,最近想试着琢磨如何将C++应用的动态链接全部改成静态链接,发现还需要研究CMake的用法,进入CMake的文档, http://www.cmake.org/cmake/help/ ...

  3. HTML5 中 div section article 的区别

    刚刚开始接触 HTML5 时,对它的标签很不适应,甚至一度有点反感.尤其是对 div.section.article 这几个标签,实在弄不清楚应该使用在什么场合下. div HTML Spec: Th ...

  4. C程序设计语言练习题1-10

    练习1-10 编写一个将输入复制到输出的程序,并将起重的制表符替换为\t,把回退符替换成\b,把反斜杠替换为\\.这样可以将制表符和回退符以可见的方式显示出来. 代码如下: #include < ...

  5. Centos common software install

    1.本地安装soft yum localinstall xxx.rpm 2.kolourpaintyum install kolourpaint

  6. 【object-c基础】Object-c基础之三:面对对象开发@interface,@implementation

    1.@interface 在java等语言编程中,创建类都是用class,但在object-c中,用@interface. 例子: @interface circle :NSObject    //定 ...

  7. Spark问题记录

    Spark 多线程时的序列化问题  临时记录 Exception in thread "Thread-28" org.apache.spark.SparkException: Ta ...

  8. Jasper_crosstab_group _Error incrementing crosstab dataset

    error detail: net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRRuntimeExceptio ...

  9. Robot FrameWork 教程链接

    1.  Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2.  Robot Framework ...

  10. 这样就算会了PHP么?-1

    公司有用到这些业务,多了解一下总是没错的. 现在开始一系列的PHP学习啦... <?php $boo=true; if($boo==true) echo '变量$boo为真!'; else ec ...