C#学习问题记录
来源:互联网 发布:javascript 反转义 编辑:程序博客网 时间:2024/06/06 18:00
2016-06-30
1,练习ASP.NET,创建了web应用项目后,在设计视图里,不能拖动工具箱里的组件到设计视图里。
解决方式:放置项目的目录里有个#符号。把#号去掉就好了。
2016-09-11
1,问题:自定义的类作为数据源,为什么在xaml里使用binding,UI却没有显示?
详细描述:自定义了一个类,并实现INotifyPropertyChanged接口
public class Student : INotifyPropertyChanged{ public event PropertyChangedEventHandler PropertyChanged; private string name; public string Name { get { return name; } set { name = value; if(this.PropertyChanged != null) { this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs(Name)); } } }}
要把Name属性Binding到TextBox,在C#后台中写
public partial class MainWindow : Window{ public Student stu; public MainWindow() { InitializeComponent(); stu = new Student(); stu.Name = "xiaoming"; Binding bd = new Binding("Name"){Source=stu}; BindingOperations.SetBinding(this.txtBox, TextBox.TextPorperty, bd); }}
运行没有问题。但是把binding写在xaml文件中的时候:
<TextBox x:Name="txtBox" Text="{Binding stu.Name}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Margin="5" />TextBox上却没有显示出"xiaoming"字符。
解决方法:在MainWinidow()中,需要添加DataContext=this语句:
public MainWindow(){ InitializeComponent(); stu = new Student(); stu.Name = "xiaoming"; DataContext = this;}
2,问题:在xaml中将一个TextBox的Text属性Binding到另一个TextBox上,运行之后,两个TextBox的内容没有同时变化。
代码:
<TextBox x:Name="textBox1" Text="{Binding Path=Text, Source=textBox2}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="1" Margin="5" />
解决方法:不是使用Source而是使用ElementName。ElementName是用于将一个UI控件作为另一个UI空间的Binding源的时候用的。可以参考这个文章:点击打开链接
3,问题:自定义的类中有一个数组,这个数组作为ComboBox的数据源,在后台代码中使用这样的语句,运行后能看到ComboBox内容变化
Binding bd = new Binding("PortNames") { Source = MyPort };BindingOperations.SetBinding(this.cmbPortNum, ComboBox.ItemsSourceProperty, bd);但在xaml中这样写,运行后ComboBox内容却没有变化
<ComboBox Name="cmbPortNum" ItemsSource="{Binding MyPort.PortNames}" Margin="2"/>
解决方法:这个自定义实例化之后需要给它get和set方法。还需要使用DataContext=this语句。
public partial class MainWindow : Window{ public SerialPortModel MyPort{ get; set; } public MainWindow() { InitializeComponent(); MyPort = new SerialPortModel(); MyPort.PortNames = SerialPort.GetPortNames(); DataContext = this; }}
2016-10-14
为已有的项目添加测试。
使用NUnit。
右击解决方案,选择添加测试项目。在新添加的测试项目里,右击“引用”,把要被测的项目引用添加进来。如果测试项目和被测项目的.net版本不同,则在项目→属性里,把二者的.net版本修改一致。
0 0
- C#学习问题记录
- C#学习记录---ExecuteNonQuery()返回值问题
- c#学习记录
- C# 泛性 学习记录
- c#事件 学习记录
- C#学习记录
- C#学习记录
- C#学习记录------------ADHelper
- C#的学习记录
- C#学习记录
- C#学习记录
- C#学习记录
- C#学习记录
- C#学习记录
- C#的学习记录
- C#入门学习记录
- C#学习记录
- C#学习记录:委托
- Spring学习笔记
- html总结
- svn分支管理的使用与经验
- 读薄《Linux 内核设计与实现》(4) - 中断与同步
- Jquery noConfict()方法
- C#学习问题记录
- 结构体在内存中的对齐规则
- Linux 时钟中断处理(一)
- Apache+PHP windows
- jquery总结
- Retrofit2 使用记录
- Android应用开发中的进程名,包名,applicationId
- 如何循环获取html的值,并拼写到json/json,求value所对应key的值
- Spring MVC入门第1天--框架说明与快速入门