WPF学习日记8

1.System.Collections.ObjectModel.ObservableCollection
解析:表示一个动态数据集合,它可在添加、删除项目或刷新整个列表时提供通知。

2.System.Collections.Generic.KeyValuePair
解析:定义可设置或检索的键/值对。

3.<i:Interaction.Triggers>
解析:

<i:Interaction.Triggers>
  <i:EventTrigger EventName="Loaded">
    <i:InvokeCommandAction Command="{Binding ClockWindowLoadCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  </i:EventTrigger>
  <i:EventTrigger EventName="KeyUp">
    <i:InvokeCommandAction Command="{Binding WindowKeyCommand}"/>
  </i:EventTrigger>
  <i:EventTrigger EventName="Activated">
    <i:InvokeCommandAction Command="{Binding WindowActivatedCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  </i:EventTrigger>
</i:Interaction.Triggers>

4.CommandParameter
解析:CommandParameter

5.WPF绑定
解析:
[1]WPF绑定一个控件是使用Binding.ElementName
[2]WPF绑定非控件对象时使用Source、RelativeSource、DataContext属性

6.RelayCommand类
解析:
在这里插入图片描述

7.dynamic
解析:表示将在运行时解析其操作的对象。

8.System.Windows.Visibility
解析:指定元素的显示状态。如下所示:
[1]Visible=0:显示元素
[2]Hidden=1:不显示元素,但是在布局中为元素保留空间
[3]Collapsed=2:不显示元素,并且不在布局中为它保留空间

9.System.Windows.Window
解析:提供创建、配置、显示和管理的窗口和对话框生存期的能力。

10.UpdateSourceTrigger
解析:
[1]Default[默认值]:源会根据绑定的属性来更新
[2]PropertyChanged:一旦绑定的属性值改变,源会立即更新
[3]LostFocus:一旦目标控件失去焦点,源就会被更新
[4]Explicit

11.ColumnSpan和RowSpan
解析:合并单元格。

12.WPF和DataGridTemplateColumn
解析:

<DataGrid.Columns>
    <DataGridTextColumn Header="检测项目" Binding="{Binding ItemName}" Width="*" />
    <DataGridTemplateColumn Header="详细"   Width="80" >
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button  VerticalAlignment="Stretch"  Style="{StaticResource NewDialogBtStyleG}" Height="{Binding ElementName=GridTest,Path=RowHeight}" Click="ItemClick" ></Button>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>

13.KeyValuePair和Dictionary的关系
解析:
[1]KeyValuePair
KeyValuePair是一个结构体(struct)
KeyValuePair只包含一个Key、Value的键值对
[2]Dictionary
Dictionary可以简单的看作是KeyValuePair的集合
Dictionary可以包含多个Key、Value的键值对

Dictionary<int, string> myDic = new Dictionary<int, string>();
foreach (KeyValuePair<int, string> item in myDic)
{
    Console.WriteLine("Key = {0}, Value = {1}", item.Key, item.Value);
}

14.View实体类
解析:View实体类[即MVVM里面的Model层]继承ObservableObject,而ObservableObject已经继承了INotityPropertyChanged属性变更通知接口。

15.ViewModel
解析:每个ViewModel类都将继承MVVMLight的ViewModelBase为父类
[1]MVVM里面的VM[即ViewModel]继承了ViewModelBase,而ViewModelBase其实也继承了INotityPropertyChanged,但是它是先继承ObservableObject,而ObservableObject继承了INotityPropertyChanged。
[2]当RaisePropertyChanged的属性名称参数为空,而通过编译器可以智能加上,可以通过反编译工具知晓,这点改进很人性化。

16.public static Task Run(Action action)
解析:
[1]将在线程池上运行的指定工作排队,并返回代表该工作的System.Threading.Tasks.Task对象。
[2]返回结果为表示在线程池执行的队列的任务。

17.MVVM模式
解析:
[1]View就是用xaml实现的界面,负责与用户交互,接收用户输入,把数据展现给用户。
[2]ViewModel是一个C#类,负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定到View,同时也可以处理一些UI逻辑。
[3]Model,就是系统中的对象,可包含属性和行为。
[4]三者之间的关系:View对应一个ViewModel,ViewModel可以聚合N个Model,ViewModel可以对应多个View。

18.Java和C#中的get和set
解析:

class Stutent {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
            this.age = age;
    }
}

19.WPF的MVVM本质
解析:最大限度地降低XAML和CS文件的耦合度,分离界面和业务逻辑,因此尽可能的在View后台不写代码,即通过命令替换事件。命令使用步骤:
[1]创建命令
[2]绑定命令
[3]设置命令源
[4]设置命令目标

20.ICommand接口
解析:WPF中命令的核心是System.Windows.Input.ICommand接口,所有命令对象都实现了此接口。当创建自己的命令时,不能直接实现ICommand接口,而是要使用System.Windows.Input.RouteCommand类,该类已经实现了ICommand接口,所有WPF命令都是RouteCommand类的实例。在程序中处理的大部分命令不是RoutedCommand对象,而是RoutedUICommand类的实例,它继承自RouteCommand类。

21.实现INotifyPropertyChanged接口
解析:
在这里插入图片描述

22.ObservableCollection<T>集合
解析:在遇到对集合添加、删除等操作又需要使用数据绑定时要优先考虑ObservalbeCollection<T>。

23.事件绑定
解析:要使用事件绑定需要借助System.Windows.interactivity,如果安装了Blend,里面就包含了这个dll。需要在Interaction.Triggers里面添加一个或多个EventTrigger并指定关注的的事件名称,在EventTrigger中通过InvokeCommandAction来绑定事件对应的命令。图中所示绑定了主窗口的Loaded事件,在事件触发后会调用绑定的命令对象LoadedCommand的Execute方法执行命令,当命令绑定需要参数时可以通过绑定CommandParameter实现。
在这里插入图片描述

24.WPF命令库
解析:
[1]ApplicationCommands
[2]ComponentCommands
[3]NavigationCommands
[4]MediaCommands
[5]EditingCommands

25.NotificationObject类
解析:
在这里插入图片描述
[1]https://github.com/qmtdlt/WPFMVVMDemo
[2]https://github.com/thr828/WPFDemo

参考文献:
[1]MvvmLight框架使用入门:https://www.cnblogs.com/manupstairs/p/4890300.html
[2]KAXAML:http://www.kaxaml.com/
[3]Blend:https://msdn.microsoft.com/zh-cn/(搜索Blend)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP工程化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值