wpf – MVVM绑定属性和子属性

wpf – MVVM绑定属性和子属性,第1张

概述我有一个视图模型,它继承自一个有一个名为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绑定属性和子属性所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存