‫欢迎回来｡
‫现在您已经了解了什么是依赖属性, 接下来是时候检查数据绑定了, 因为它们是相互链接或相互连接的｡
‫因此, 在本视频中, 我们将讨论四种不同的绑定模式｡
‫数据绑定的模式, 有一种叫做单向｡
‫所以它从绑定源指向绑定目标｡
‫然后是绑定目标朝向绑定源和反向, 这是双向模式｡
‫然后, 我们有一种到源的方法, 它将信息从目标发送到源｡
‫最后, 我们有一个绑定目标, 它是在构造函数中或初始化过程中完成的绑定源｡
‫让我们来看一个例子｡
‫这里可以有一个文本框, 我们可以在其中输入文本｡
‫所以我只给予它一个宽度, 比如说100, 我给它一个边距, 比如说50像素｡
‫现在我想使用堆栈面板而不是网格｡
‫我现在要把它的名字改成Stack panel｡
‫文字方块｡
‫我将分配一个名为的文本｡
‫或者, 它只会说15｡
‫在它下面我将创建一个滑块｡
‫因此, 滑块的最小值应为0, 最大值应为100｡
‫现在, 让我们按原样运行代码, 这样您就可以看到我们在那里创建了什么｡
‫如你所见, 这里有一个值15｡
‫这是一个文本框, 所以我可以根据需要更改文本｡
‫滑球在那里｡
‫现在我想做的是把这两者联系起来｡
‫因此, 我想将滑块连接到文本框｡
‫正如你所看到的, 有四种不同的连接方式｡
‫我首先要使用的是单向数据绑定｡
‫所以在这里我会说我的文本框的文本应该是绑定的｡
‫所以我在这里使用绑定, 我想知道我应该绑定到谁？
‫所以我想绑定到滑块｡
‫因此, 为了与滑块进行通信或访问滑块, 滑块需要有一个名称｡
‫我将给予它命名, 我的滑块, 现在我可以在这里添加这个名称｡
‫所以我想绑定的元素名是my slider｡
‫实际上这不是用连字符表示的｡
‫接下来我需要一条路径｡
‫那么我想从这个滑杆上得到什么呢？
‫也可能是多处房产, 对吧？
‫但我感兴趣的是值, 因为我想知道滑块的值｡
‫所以我说路径等价｡
‫最后, 我需要指定模式, 我们将从单向模式开始｡
‫当然, 在我测试之前, 我需要删除我的旧文本｡
‫现在我们可以继续运行代码了｡
‫我们将看到我是否拖动滑块｡
‫此处的值也会更改｡
‫如你所见, 它有很多浮点值, 或者说是一个长浮点值｡
‫而且我想要一个整数｡
‫我能做的就是启用快照快照功能｡
‫这里启用了快照功能, 我会说这是真的｡
‫所以我希望它能被启用｡
‫如果我再运行一次, 你会发现我们只能得到整数值｡
‫好吧, 那太好了｡
‫但是现在｡
‫顺便说一下, 你还可以看到, 它没有连接到滑块｡
‫因此, 文本是连接的, 或者数据源是我们的滑块, 目标是我们的文本框｡
‫因此, 正如您所看到的, 数据被发送到文本框｡
‫但是, 由于我们已经将模式设置为单向, 如果我在这里更改文本或文本框的值, 滑块将不会对此感兴趣,
‫因此它不会更改任何内容｡
‫例如, 让我们输入25, Slider不在乎｡
‫所以如果我们把它改成双向的, 它就会在乎｡
‫顺便说一句, 这是给你的｡
‫所以我们的文本框是目标文本框是目标滑块是绑定源｡
‫因此滑块是绑定源｡
‫而现在这上面的整个事情就更有意义了, 对吧？
‫现在, 我们使用双向模式, 您将在第二种模式中看到这意味着什么｡
‫我们就这样了｡
‫如果我现在在这里输入一个值, 然后按tab键, 以便考虑该值,
‫我可以看到滑块更改了它的值｡
‫所以现在它们是双向连接的｡
‫如果我只想有一条通往源头的路呢？
‫因此, 只有文字会影响滑杆, 但滑杆不会影响文字方块｡
‫那么我们可以使用这一种方式来获取源代码, 所以我将使用一种方式来获取源代码｡
‫我们再来一遍｡
‫现在如果我改变这里的值, 正如你所看到的, 什么都没有改变｡
‫但是如果我在这里添加一个值, 滑块就会改变｡
‫好吗？
‫所以这是一种获取资源的方法｡
‫最后, 是一次性模式｡
‫让我们进入主窗口XAML｡
‫我们将需要编写一些代码, 因为正如我所说的, 它必须在初始化期间或在构造函数中完成｡
‫在我们的例子中, 它位于主窗口的构造函数中, 我们继续使用它进行一次性绑定｡
‫我将访问滑块, 并将值设置为30｡
‫现在我想访问文本框｡
‫如您所见, 我们可以轻松访问此滑块, 因为它具有名称, 并且在同一个类中,
‫因此我们可以直接访问它｡
‫但是现在文本框还没有名字, 所以我给它取一个名字, 这个名字就是我的文本框.
‫现在, 我们可以继续访问此文本框｡
‫我的文本框中, 点号文本应该是我的滑块点号值的点号字符串｡
‫因此, 现在开始时滑块的值将是30, 文本框的文本将是滑块的字符串值｡
‫也就是30岁｡
‫但这并不是说我们把它固定好了, 我们固定了滑块的值, 文本也设置了一次｡
‫这就是一次性模式｡
‫如您所见, 如果我现在更改滑块, 文本不会更改｡
‫如果我添加了一个值, 如果我将该值更改为25, 也不会发生任何变化｡
‫让我们再看一个你可能也会感兴趣的东西｡
‫所以现在我想让它以两种方式改变, 但我也想让它在不需要按tab键的情况下改变｡
‫如果我们使用下面的方法, 就会触发这个问题｡
‫我将在这里的数据绑定中添加一些内容, 因为您可以看到, 我们可以访问多个不同的属性｡
‫我现在要使用的是更新来源触发程序｡
‫这里的更新源触发器｡
‫正如你在这里看到的, 默认的, 明确的失去了焦点｡
‫我们感兴趣的是这个属性发生了变化｡
‫因此, 我希望每当属性更改时都触发此操作｡
‫也就是说, 每当滑块或文本发生变化时｡
‫我们再来一遍｡
‫记住, 我们再次使用了两种方式, 我将其设置为30或开始时设置为30｡
‫所以没关系｡
‫当然, 我们仍然可以在双向模式下使用它｡
‫但是现在如果我, 比如说, 把它改成25, 甚至当我在打字的时候, 我在打5,
‫5, 甚至5也被考虑进去了, 或者改变了什么｡
‫所以如果我加一个大于100的值, 比如说我想加555, 你会看到它会达到最大值, 也就是100｡
‫所以如果我玩一下, 你可以看到它直接改变了｡
‫这是因为我们这里有一个附加信息, 它表示更新源触发器属性更改｡
‫所以每当我们的财产｡
‫但是文本框, 也就是text属性发生变化的时候, 这个更新源触发器就应该被执行｡
‫然后整个文本都在改变文本框的滑块, 它们都在改变, 好吧｡
‫因为它们是绑定的, 对吧？
‫他们以两种方式相互联系｡
‫这是数据绑定的一个主要例子｡
‫关于数据绑定, 还有很多东西需要了解｡
‫我们刚刚绑定了值, 但您还可以绑定许多其他方面｡
‫例如, 这里你看到的路径是值, 但你看到的是属性路径, 但还有很多其他路径｡
‫假设我想绑定背景｡
‫假设我的滑块的背景改变了, 你会看到005, 以此类推｡
‫这是滑块的背景, 滑块的背景很棒.
‫如果我现在把滑块的背景改成浅绿色, 我的文本值突然变成了,
‫这是颜色的十六进制值｡
‫水
‫如果我把它换成白色, 它应该是大量的FS｡
‫如果我把它变成黑色, 它应该是大量的零｡
‫正如你所见｡
‫F､
‫这就是α值｡
‫然后是十六进制值, 零, 零零, 等等.
‫这就是数据挖掘所能做的, 而不仅仅是价值｡
‫您可以绑定几乎所有它们彼此共享的属性｡
‫好吧, 我会的
‫所以我将返回到这里的值并保存项目｡
‫所以我希望你喜欢这个视频｡
‫在下一个视频中, 我们将继续使用WPF做一些更有趣的事情｡