首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >只允许OneWayToSource绑定模式

只允许OneWayToSource绑定模式
EN

Stack Overflow用户
提问于 2016-02-25 09:49:00
回答 1查看 1.5K关注 0票数 4

我让EntitiesUserControl负责EntitiesCount依赖项属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static readonly DependencyProperty EntitiesCountProperty = DependencyProperty.Register(
    nameof(EntitiesCount),
    typeof(int),
    typeof(EntitiesUserControl),
    new FrameworkPropertyMetadata(1, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

public int EntitiesCount
{
    get { return (int)this.GetValue(EntitiesCountProperty); }
    set { this.SetValue(EntitiesCountProperty, value); }
}

另一个(主要)控件包括EntitiesUserControl并通过绑定读取它的属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<controls:EntitiesUserControl EntitiesCount="{Binding CountOfEntities, Mode=OneWayToSource}" />

视图模型中的CountOfEntities属性只存储和处理计数值的更改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private int countOfEntities;
public int CountOfEntities
{
    protected get { return this.countOfEntities; }
    set
    {
        this.countOfEntities = value;
        // Custom logic with new value...
    }
}

我需要EntitiesCount属性的EntitiesUserControl只读(主控件不能更改它,只需读取),而且它的工作方式仅是因为Mode=OneWayToSource显式声明。但是,如果声明TwoWay模式或不显式声明模式,那么EntitiesCount可以从外部重写(至少在绑定初始化之后,因为在指定默认依赖项属性值之后发生)。

由于绑定限制(最好在此answer中描述),我无法执行“合法”只读依赖属性,因此我需要防止使用OneWayToSource以外的模式进行绑定。最好在OnlyOneWayToSource枚举中有一些像BindsTwoWayByDefault值这样的FrameworkPropertyMetadataOptions标志.

有何建议可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2016-02-25 11:13:53

这是一个“位”黑客,但您可以创建一个Binding-derived类,并使用它而不是Binding

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[MarkupExtensionReturnType(typeof(OneWayToSourceBinding))]
public class OneWayToSourceBinding : Binding
{
    public OneWayToSourceBinding()
    {
        Mode = BindingMode.OneWayToSource;
    }

    public OneWayToSourceBinding(string path) : base(path)
    {
        Mode = BindingMode.OneWayToSource;
    }

    public new BindingMode Mode
    {
        get { return BindingMode.OneWayToSource; }
        set
        {
            if (value == BindingMode.OneWayToSource)
            {
                base.Mode = value;
            }
        }
    }
}

在XAML中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<controls:EntitiesUserControl EntitiesCount="{local:OneWayToSourceBinding CountOfEntities}" />

名称空间映射local可能对您来说是另一回事。

OneWayToSourceBindingMode设置为OneWayToSource,并防止将其设置为任何其他内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35634609

复制
相关文章
WPF 绑定的默认模式
小伙伴绑定了一个属性,但是发现属性在更新的时候没有同步到后台,他说在 WPF 绑定的默认值是什么?为什么没有设置 Mode 的属性,有的是双向有的是单向?本文就来告诉大家在 WPF 定义的依赖属性是如何控制绑定的是双向还是单向的方法
林德熙
2019/04/22
1.4K0
WPF 绑定的默认模式
小伙伴绑定了一个属性,但是发现属性在更新的时候没有同步到后台,他说在 WPF 绑定的默认值是什么?为什么没有设置 Mode 的属性,有的是双向有的是单向?本文就来告诉大家在 WPF 定义的依赖属性是如何控制绑定的是双向还是单向的方法
林德熙
2022/08/04
7710
WPF 双向绑定到非公开 set 方法属性在 NET 45 和 NET Core 行为的不同
本文记录 WPF 在 .NET Framework 4.5 和 .NET Core 3.0 或更高版本对使用 Binding 下的 TwoWay 双向绑定模式绑定到非公开的 set 属性上的行为变更
林德熙
2022/01/25
1.2K0
C# Xamarin 数据绑定入门基础
假如说,有两个控件,一个是滑动条(Slider),一个是显示文本的标签(Label)。
痴者工良
2021/04/26
1.2K0
win10 uwp 依赖属性
本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用。
林德熙
2018/09/19
8390
win10 uwp 依赖属性
MvvmCross 框架中的数据绑定语法
数据绑定一直是 MvvmCross (Mvx) 框架的核心, 随着 Mvx 版本的版本更新, 绑定语法由 Json 变化到了 Swiss 语法, 并逐渐向 Tibet 过度。 由于基于 Json 的绑定语法在 Mvx 3.0 之后的版本已经标记为过时, 不再支持, 因此不做介绍, 本文详细介绍 Swiss 和 Tibet 语法。
beginor
2020/08/06
1.6K0
input只允许上传图片类型文件
input[file]标签的accept属性可用于指定上传文件的 MIME类型 。
DencyCheng
2018/11/05
2.8K0
silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
asp.net开发中,数据绑定是一个很简单的概念,控件与数据绑定后,控件可以自动把数据按一定的形式显示出来。(当然控件上的值改变后,可以通过提交页面表单,同时后台服务端代码接收新值更新数据) silverlight中利用控件显示数据这一基本功能当然还保留,只不过因为silverlight应用不需要刷新(也不存在提交表单),所以当控件属性或数据源变化后,在如何相互影响这一块的处理上有所不同。 引用一段silverlight 3 sdk官方的解释: ... Silverlight 支持以下三种类型的绑定: 创建
菩提树下的杨过
2018/01/23
1.2K0
silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
Linux下多网卡绑定bond及模式介绍
主要是通过将多个物理网卡绑定到一个逻辑网卡上,实现了本地网卡的冗余,带宽扩容以及负载均衡。
用户8705048
2021/06/08
7.7K0
input只允许上传图片类型文件
input[file]标签的accept属性可用于指定上传文件的 MIME类型 。
全栈程序员站长
2022/07/11
8900
C# WPF mvvm模式下combobox绑定(list<enum>、Dictionary<int,string>)
ComboBox是一个非常常用的界面控件,它的数据源ItemsSource既可以绑定一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。
用户9127601
2021/11/01
5.8K0
[WCF安全系列]绑定、安全模式与客户端凭证类型:BasicHttpBinding
整个安全传输是在WCF的信道层进行的,而绑定是信道层的缔造者,所以终结点采用哪种类型的绑定以及对绑定的属性进行怎样的设置决定了信道层最终采用何种机制实现消息的安全传输。具体来说,我们可以通过绑定设置最终采用的安全模式,以及基于相应安全模式下进行认证和消息保护的行为。 一、Binding安全相关的应用编程接口 不同的绑定类型由于其采用的传输协议不同,应用的场景也各有侧重,很难提供一种统一的应用编程接口完成基于不同绑定的安全设置,所以每一种绑定都具有各自用于安全设置相关的类型。但是基于对安全的设置,大部分系统预
蒋金楠
2018/02/07
1.3K0
[WCF安全系列]绑定、安全模式与客户端凭证类型:BasicHttpBinding
安全组设置只允许固定ip登录
腾讯云官网参考文档:https://cloud.tencent.com/document/product/215/20398
张晗
2020/11/04
3.1K0
深度Mybatis源码分析——SqlSessionFactoryBuilder(建造者模式),Mapper接口绑定原理(代理模式)
Reader reader = Resources.getResourceAsReader(resources);
须臾之余
2019/07/05
2.8K1
深度Mybatis源码分析——SqlSessionFactoryBuilder(建造者模式),Mapper接口绑定原理(代理模式)
3.绑定属性、绑定html、绑定class、绑定style
1.绑定属性 <template> <div id="app"> <!-- 绑定属性 --> <br> <div v-bind:title='title'>鼠标悬浮出现</div> <br> <img :src="url" alt="仙女"> </div> </template> <script> export default { name: 'app', data () { return { title:'
玩蛇的胖纸
2019/09/25
2.4K0
3.绑定属性、绑定html、绑定class、绑定style
Binding(一):数据绑定
这节开始分几期来讲一下WPF中Binding的相关用法,本节主要讲使用Binding进行数据绑定。
宿春磊Charles
2021/11/05
1.4K0
Nginx限制IP访问只允许特定域名访问
为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 [Nginx]完成 1、找到 nginx 的配置文件 cd /usr/local/nginx/conf/ 找到 nginx.conf 文件 编辑它 2、添加新的 server # 禁止ip访问 server { listen 80 default_server; listen 443 ssl default_server; server_name _; return 403; } 注意是
入门笔记
2022/06/03
9.5K0
Nginx限制IP访问只允许特定域名访问
WPF 只允许打开一个实例
我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开。 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭。也就是是否存在另一个程序在运行。
林德熙
2018/09/18
1.2K0
点击加载更多

相似问题

WPF OneWayToSource绑定

22

WPF反向绑定OneWayToSource

21

Xamarin XAML数据绑定"OneWayToSource“

25

分别绑定OneWay和OneWayToSource?

14

WPF组合框IsDropDownOpen属性绑定OneWayToSource模式与WriteOnly属性

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文