路径就是用来设置binding要关联的那个属性
XMAL代码
<StackPanel Background="LightBlue">
<!--案例一-->
<!--写法一-->
<!--<TextBox Margin="5" Height="20" Text="{Binding Path=Value,ElementName=slider}"/>-->
<!--写法二-->
<!--<TextBox x:Name="txtbox1" Margin="5" Height="20" Text="{Binding Path=Value,ElementName=slider}"/>
<Slider x:Name="slider" Minimum="0" Maximum="100" Margin="5"/>-->
<!--案例二-->
<!--<TextBox x:Name="txtbox1" Margin="5"/>
<TextBox x:Name="txtbox2" Margin="5" Text="{Binding Path=Text.Length,ElementName=txtbox1,Mode=OneWay}"/>-->
<!--案例三-->
<TextBox x:Name="txtbox1" Margin="5"/>
<TextBox x:Name="txtbox2" Margin="5" Text="{Binding Path=Text.[3],ElementName=txtbox1,Mode=OneWay}"/>
</StackPanel>
CS代码
public MainWindow()
{
InitializeComponent();
//方案一
//Binding binding = new Binding() {Path = new PropertyPath("Value"), Source = slider};
//写法三
//Binding binding = new Binding("Value") {Source = slider};
//this.txtbox1.SetBinding(TextBox.TextProperty, binding);
}
当使用一个集合或者DataView作为Binding源的时候,我们可以把他的默认元素当作Path来使用
XMAL代码
<TextBox x:Name="txtOne" Margin="5"/>
<TextBox x:Name="txtTwo" Margin="5"/>
<TextBox x:Name="txtThree" Margin="5"/>
CS代码
List<string> list = new List<string>() {"aaa", "bb", "c"};
this.txtOne.SetBinding(TextBox.TextProperty, new Binding("/") {Source = list});
this.txtTwo.SetBinding(TextBox.TextProperty, new Binding("/Length") { Source = list ,Mode = BindingMode.OneWay});
this.txtThree.SetBinding(TextBox.TextProperty, new Binding("/[1]") { Source = list, Mode = BindingMode.OneWay });
没有Pa他还的Binding
XMAL代码
<Window x:Class="没有Path的Binding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<StackPanel Background="LightBlue">
<StackPanel.Resources>
<sys:String x:Key="s">
dfdsfdsfdsfsdfsdfsdfsdfsdfsdfsd
</sys:String>
</StackPanel.Resources>
<TextBlock Text="{Binding Path=.,Source={StaticResource ResourceKey=s}}"/>
</StackPanel>
</Window>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现