silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了wpf – MVVM绑定属性和子属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个视图模型,它继承自一个有一个名为IsReadOnly的属性的基类. 在这个视图模型中,我有一个名为Customer的属性,我将客户对象的属性绑定到我的视图上的控件. 但是我也希望能够将IsReadOnly绑定到我视图上的每个控件. <TextBox x:Name="FirstNameTextBox" Grid.column="1" Margin="2,2,0,2" Grid.Row="2"
我有一个视图模型,它继承自一个一个名为IsReadOnly的属性的基类.
在这个视图模型中,我有一个名为Customer的属性,我将客户对象的属性绑定到我的视图上的控件.

但是我也希望能够将IsReadOnly绑定到我视图上的每个控件.

<TextBox x:Name="FirstNameTextBox" Grid.column="1" Margin="2,2,2" Grid.Row="2" textwrapping="Wrap" HorizontalAlignment="Left" Width="200" 
                         Text="{Binding FirstName,Mode=TwoWay}" IsReadOnly="{Binding Myviewmodel.IsReadOnly}"/>

我怎样才能使用这两个属性
这是我的结构

公共类MyviewmodelBase {
    public bool IsReadonly {get; set;}
}

公共类Myviewmodel {
    公共客户客户{get;组; }
}

公共类客户{
    public String FamilyName {get;组; }
}

欢呼任何帮助

解决方法

我假设您的Myviewmodel继承自MyviewmodelBase.

public class MyviewmodelBase { public bool IsReadonly { get;set;} }

public class Myviewmodel : MyviewmodelBase  { public Customer Customer { get; set; } }

public class Customer { public String FamilyName { get; set; } }

我还假设您的视图DataContext是Myviewmodel的一个实例,如果不让我知道:)您的绑定应该如下所示:

<TextBox x:Name="FirstNameTextBox" Grid.column="1" Margin="2,2" Grid.Row="2"    textwrapping="Wrap" HorizontalAlignment="Left" Width="200" 
         Text="{Binding Customer.FamilyName,Mode=TwoWay}" IsReadOnly="{Binding IsReadOnly}"/>

编辑:如果TextBox的DataContext是Customer属性,则必须在Binding to IsReadOnly中使用Relativesource

大佬总结

以上是大佬教程为你收集整理的wpf – MVVM绑定属性和子属性全部内容,希望文章能够帮你解决wpf – MVVM绑定属性和子属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。