相关疑难解决方法(0)

WPF - 从绑定路径获取属性值

如果我有一个名为MyObject的对象,它有一个名为MyChild的属性,它本身有一个名为Name的属性.如果我拥有的只是一个绑定路径(即"MyChild.Name"),并且对MyObject的引用,我该如何获取该Name属性的值?

MyObject
  -MyChild
    -Name
Run Code Online (Sandbox Code Playgroud)

wpf binding markup-extensions

14
推荐指数
1
解决办法
1万
查看次数

从BindingExpression获取源属性类型

我试图找出绑定表达式的源属性类型.我想这样做是因为我想使用UpdateSourceExceptionFilter来提供比通用"无法转换"更有用的错误消息.

在.NET 4.5中,我使用ResolvedSourceResolvedSourcePropertyName反射来获取源属性类型,如下所示:

PropertyInfo sourceProperty = expr.ResolvedSource.GetType().GetProperty(expr.ResolvedSourcePropertyName);
Type propertyType = sourceProperty.PropertyType;
Run Code Online (Sandbox Code Playgroud)

这很好用.然而,这两个BindingExpression属性都是在.NET 4.5中引入的,而我仍然在4.0上(因为Windows XP而无法真正更新).

那么在.NET 4.0中有一个很好的方法吗?我想过使用反射获取内部SourceItemSourcePropertyName属性,或者只是私有Worker来获取这些值,但我宁愿避免访问内部/私有属性或字段(我想这也需要我做一些关于信任的事情?有什么影响?).

.net c# reflection .net-4.0

3
推荐指数
1
解决办法
2372
查看次数

如何通过Behavior清除绑定到ViewModel的WPF PasswordBox?

我写了WPF MVVM Prism 6.2应用程序.在登录窗口(即PrismUserControl)的视图中,我在视图模型中将PaswordBox绑定(通过行为)到"密码"属性.每次在应用程序运行时调用登录窗口时,PasswordBox必须为空. (例如,在用户关闭当前会话之后,他或她必须只看到Shell上方的空Shell和登录窗口.)我的问题是上面的 PasswordBox仅在应用程序加载后第一次显示为空.如果PaswordBox在第二次或第三次显示等,则它不为空.请看下面的图片:

在此输入图像描述

如您所见,密码不为空,但在这种情况下它必须为空.以下是来自登录窗口标记的XAML片段,其中PaswordBox为:

. . . . . . . . . . . . . .
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
. . . . . . . . . . . . . .
<PasswordBox Grid.Row="1" Grid.Column="1" Height="30" Margin="0 10 5 0" AutomationProperties.AutomationId="UserPasswordBox">
        <i:Interaction.Behaviors>
            <behavior:PasswordBoxBindingBehavior Password="{Binding Password}"/>
        </i:Interaction.Behaviors>
</PasswordBox>
. . . . . . . . . . . . . . . .
Run Code Online (Sandbox Code Playgroud)

下面是XAML中涉及的行为类,如上所示:

public class PasswordBoxBindingBehavior : Behavior<PasswordBox>
{
    protected override void …
Run Code Online (Sandbox Code Playgroud)

c# wpf behavior mvvm

3
推荐指数
1
解决办法
2765
查看次数

标签 统计

c# ×2

wpf ×2

.net ×1

.net-4.0 ×1

behavior ×1

binding ×1

markup-extensions ×1

mvvm ×1

reflection ×1