有以下类:public class Actor : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int life;
public int Life
{
get { return life; }
set
{
life = value;
if (PropertyChanged != null)
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Life"));
}
}
}
public class Actors : Collection<Actor>
{ }在XAML中声明资源: <Window.Resources>
<local:Actors x:Key="Actors">
<local:Actor x:Name="Actor1"/>
<local:Actor x:Name="Actor2"/>
</local:Actors>
</Window.Resources>现在我想将一个TextBlock的Text属性Binding为Actor2.Life<TextBlock Text="{Binding ElementName={StaticResource Actors} Path=???}"/><!-- 请问这里的Binding应该如何写? -->请问Binding处应该如何写?我在网络上找到Path的解释:
Path:
Binding中的Path是 PropertyPath对象。在最简单的情况下,Path 属性值是要用于绑定的源对象的属性名称,如 Path=PropertyName。 通过类似于 C# 中使用的语法,可以指定属性的子属性。例如,子句 Path=ShoppingCart.Order 将绑定设置为对象的子属性 Order 或属性 ShoppingCart。 若要绑定到附加属性,请将附加属性用括号括起。例如,若要绑定到附加属性 DockPanel.Dock,则语法为 Path=(DockPanel.Dock)。 在应用了索引器的属性名称之后的方括号内,可以指定属性的索引器。例如,子句 Path=ShoppingCart[0] 将绑定设置为与属性的内部索引处理文本字符串“0”的方式对应的索引。此外,还支持多个索引器。 在 Path 子句中可以同时使用索引器和子属性,例如,Path=ShoppingCart.ShippingInfo[MailingAddress,Street]。 在索引器内部,可以有多个由逗号 (,) 分隔的索引器参数。可以使用圆括号指定每个参数的类型。例如,可以使用 Path="[(sys:Int32)42,(sys:Int32)24]",其中 sys 映射到 System 命名空间。 如果源为集合视图,则可以用斜杠 (/) 指定当前项。例如,子句 Path=/ 设置到视图中当前项的绑定。如果源为集合,则此语法指定默认集合视图的当前项。 可以结合使用属性名和斜杠来遍历作为集合的属性。例如,Path=/Offices/ManagerName 指定源集合的当前项,该源集合包含同样是集合的 Offices 属性。其当前项是包含 ManagerName 属性的对象。 也可以使用句点 (.)路径绑定到当前源。例如,Text=”{Binding}” 等效于 Text=”{Binding Path=.}”。 不是很明白,设定了几种,好像都不行,应该是语法问题,请大家指教。谢谢!
{
public event PropertyChangedEventHandler PropertyChanged;
private int life;
public int Life
{
get { return life; }
set
{
life = value;
if (PropertyChanged != null)
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Life"));
}
}
}
public class Actors : Collection<Actor>
{ }在XAML中声明资源: <Window.Resources>
<local:Actors x:Key="Actors">
<local:Actor x:Name="Actor1"/>
<local:Actor x:Name="Actor2"/>
</local:Actors>
</Window.Resources>现在我想将一个TextBlock的Text属性Binding为Actor2.Life<TextBlock Text="{Binding ElementName={StaticResource Actors} Path=???}"/><!-- 请问这里的Binding应该如何写? -->请问Binding处应该如何写?我在网络上找到Path的解释:
Path:
Binding中的Path是 PropertyPath对象。在最简单的情况下,Path 属性值是要用于绑定的源对象的属性名称,如 Path=PropertyName。 通过类似于 C# 中使用的语法,可以指定属性的子属性。例如,子句 Path=ShoppingCart.Order 将绑定设置为对象的子属性 Order 或属性 ShoppingCart。 若要绑定到附加属性,请将附加属性用括号括起。例如,若要绑定到附加属性 DockPanel.Dock,则语法为 Path=(DockPanel.Dock)。 在应用了索引器的属性名称之后的方括号内,可以指定属性的索引器。例如,子句 Path=ShoppingCart[0] 将绑定设置为与属性的内部索引处理文本字符串“0”的方式对应的索引。此外,还支持多个索引器。 在 Path 子句中可以同时使用索引器和子属性,例如,Path=ShoppingCart.ShippingInfo[MailingAddress,Street]。 在索引器内部,可以有多个由逗号 (,) 分隔的索引器参数。可以使用圆括号指定每个参数的类型。例如,可以使用 Path="[(sys:Int32)42,(sys:Int32)24]",其中 sys 映射到 System 命名空间。 如果源为集合视图,则可以用斜杠 (/) 指定当前项。例如,子句 Path=/ 设置到视图中当前项的绑定。如果源为集合,则此语法指定默认集合视图的当前项。 可以结合使用属性名和斜杠来遍历作为集合的属性。例如,Path=/Offices/ManagerName 指定源集合的当前项,该源集合包含同样是集合的 Offices 属性。其当前项是包含 ManagerName 属性的对象。 也可以使用句点 (.)路径绑定到当前源。例如,Text=”{Binding}” 等效于 Text=”{Binding Path=.}”。 不是很明白,设定了几种,好像都不行,应该是语法问题,请大家指教。谢谢!
解决方案 »
- C# WinForm 服务器推送
- socket 通信有没有好的调试方法?
- Silverlight中怎样通过C#代码改变页面上Border的BorderBrush的颜色
- 高手看看 这些能防止SQL注入吗?
- 40分求dotmsn代码
- 这么喜欢竞赛,第一个编写出来的,可读性好,效率高的500分相送
- 如何实现画流程图
- c#解析php发过来的json字符串的问题
- 誰能提供 winfrom 登陸代碼
- DataGridViewComboBoxCell为什么有Value没Text属性????
- ASPxGridView的GridViewDataComboBoxColumn下拉自动查询问题
- 求 C# 文本去重算法
OY!
hehe, 大家来收分哦