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. UML基础知识

    UML:Unified Modeling Language,即统一建模语言.是一种图形化的建模语言标准. 如上图,UML可以帮助我们做软件需求分析和软件设计两方面的工作,在不同的应用场景中,UML的一 ...

  2. eclipse中安装genymotion

    在eclipse中安装genymotion.安装genymotion需要先安装virtualbox.选择Help选项中的install new software 然后点击进去点击ADD,在locati ...

  3. 【socket.io研究】3.手机网页间聊天核心问题

    前面我们已经说了服务器相关的一些内容,且又根据官网给出的一个例子写了一个可以聊天的小程序,但是这还远远不够呀,这只能算是应用前的准备工作.接下来,一起来考虑完善一个小的聊天程序吧. 首先,修改服务器的 ...

  4. csv 导入到 access中去

    Csv中有500万数据,导入到Access中去,每6万条数据为1Table 先是参照着http://support.microsoft.com/kb/257819/zh-cn来写 1.找不到可安装的  ...

  5. 翻译:《What can I hold you with?》—— 博尔赫斯《英文诗两首》之一。

    What can I hold you with? 我拿什么才能留住你? I offer you lean streets, desperate sunsets, the moon of the ja ...

  6. PYTHON简介及安装

    Python简介 Python是一种广泛使用的高层次,通用,解释,动态编程语言.它的设计理念强调代码的可读性,它的语法允许程序员表达更少的代码的概念比将在可能语言如C ++或Java.该语言提供旨在使 ...

  7. Number Sequence(HDU 1005 构造矩阵 )

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. vector容器

    vector<int> ivec; vector<Sales_item> Sales_vec; 和其他变量定义一样,定义 vector 对象要指定类型和一个变量的列表.上 面的 ...

  9. Lintcode--009(单词切分)

    http://www.lintcode.com/zh-cn/problem/word-break/ 单词切分 给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词. ...

  10. Android4.0强制横屏竖屏

    Android的启动默认是横屏或者竖屏我们的TV本来是横屏显示,但是有客户竟然要竖屏显示,昨天快下班收到的需求,竟然说7.19就要搞定.思路有2个,一个就是修改LCD的默认输出,但是这个不是我这个水平 ...