社区首页 >问答首页 >在项控件的项之间共享属性的最佳实践

在项控件的项之间共享属性的最佳实践
EN

Stack Overflow用户
提问于 2010-02-20 07:00:37
回答 1查看 82关注 0票数 1

假设我在画布上有一个ItemsControl。

每个项目都有自己的位置,但我希望所有项目都有相同的宽度。因此,如果用户在一个地方更改它,所有项目都会被更新。做这件事最干净的方法是什么?

现在我看到了两个解决方案。

  1. 每当设置更改时,我都会更新每个项的宽度属性。缺点是,这需要比必要的更多的资源,但是现在每个项的视图只是绑定到这个属性。
  2. 我向绑定到包含项的控件的ViewModel中添加一个宽度属性。我给ItemsControl起了个名字。"MyItemsContainer")。现在每个项目都可以通过:{Binding ElementName=MyItemsContainer, Path=DataContext.Width}获得。

第二种解决方案的缺点是添加了依赖项。首先,必须有一个名为ItemsControl的ItemsControl(这使得不可能在一个不同的名称ItemsControl中使用该项),并且ItemsControl的DataContext需要有一个宽度属性。

我感兴趣的是寻找替代的解决方案,或者人们在这两种解决方案中取得的经验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-20 07:58:20

如果您通过在尽可能高的级别上声明属性来消除冗余(即。您的父视图模型),可以:

  • ItemsControl中的每个项目建立子视图模型。此子视图模型也可以公开相同的属性,但可以转发对父视图模型的所有访问。请注意,这需要子视图模型也从父视图模型转发属性更改事件。通过将子属性绑定到父属性,您可以使用桁架来简化操作。
  • 让您的视图使用带有BindingRelativeSource而不是ElementName,这样至少可以消除对特定命名ItemsControl的依赖。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2302573

复制
相关文章
区块链在未来的四项最佳实践
区块链是未来。虽然目前对于多数人来说,它的感念依然是较为模糊的,但是区块链将可能成为人们未来社会的核心。这就如同90年代初期的互联网一样,对于一部分人来说这是一种不必要的技术,但也有人认识到了,这是一种对于未来的颠覆力量。 区块链技术具有不少更智能、更快、更透明和更安全的用途。这其中,加密货币是最广为人知也最核心的区块链技术应用,我们看到比特币的风潮已席卷全球。有些人只是将其视作一种短期风尚,而有些人认为这将改变我们对待金融交易的方式。 但,虚拟货币只是区块链其中的一项应用。区块链中,具有数百甚至上千种的可
人称T客
2018/03/19
7690
Kafka 的 20 项最佳优化实践
本文整理于网络翻译,英文原文:https://blog.newrelic.com/engineering/kafka-best-practices/
大数据技术架构
2019/08/16
2.1K0
Kafka 的 20 项最佳优化实践
InnoDB,5项最佳实践
MySQL是目前互联网公司使用最广的数据库,InnoDB是MySQL使用最广的存储引擎,MyISAM和InnoDB的五项最佳实践,和大家聊聊,尽量多讲“为什么”。
架构师之路
2020/09/23
3480
【最佳实践】巡检项:死信队列检查
死信队列是一种特殊的消息队列,用于集中处理无法被正常消费的消息的队列。当消息在重试队列中达到一定重试次数后仍未能被正常消费,TDMQ Pulsar 版会判定这条消息在当前情况下无法被消费,将其投递至死信队列。
邓愉悦
2022/03/29
3230
【最佳实践】巡检项:TDMQ监控检查
TDMQ是一个发布-订阅模型的消息系统,由 Broker、Apache BookKeeper、Producer、Consumer 等组件组成。
邓愉悦
2022/03/29
5690
【最佳实践】巡检项:TDMQ死信队列检查
死信队列是一种特殊的消息队列,用于集中处理无法被正常消费的消息的队列。当消息在重试队列中达到一定重试次数后仍未能被正常消费,TDMQ Pulsar 版会判定这条消息在当前情况下无法被消费,将其投递至死信队列。
邓愉悦
2022/03/29
8510
【最佳实践】巡检项:TDMQ健康检查
TDMQ是一个发布-订阅模型的消息系统,由 Broker、Apache BookKeeper、Producer、Consumer 等组件组成。
邓愉悦
2022/03/29
5970
【最佳实践】巡检项:对象存储(COS)碎片检查
对象存储的文件碎片是由于分块上传导致的。分块上传过程中,已上传但未合并的分块会以文件碎片的形式存在。
吴硕卫
2022/04/18
1.1K0
【最佳实践】巡检项:Ckafka跨可用区部署
CKafka 专业版支持跨可用区部署,在拥有3个或3个以上可用区的地域购买 CKafka 实例时,可以任选其中两个可用区购买跨可用区实例。该实例分区副本会强制分布在两个可用区节点上,这种部署方式能够让您的实例在单个可用区不可用情况下仍能正常提供服务。目前,仅专业版支持跨可用区部署,标准版无法支持。
邓愉悦
2022/03/29
8440
云端数据可视化管理的五项最佳实践
迁移到云端可以帮助企业加快IT交付、提高业务敏捷性,但是可能也会带来敞开的安全漏洞,让公司暴露在网络攻击面前。这意味着在云端运作的企业组织现在必须解答这些问题:“什么云服务器遭到了攻击,我如何才能知道
静一
2018/03/23
8090
云端数据可视化管理的五项最佳实践
【最佳实践】巡检项:对象存储(COS)存储桶加密
对于有些业务场景,用户十分看重数据的安全性。对于这种场景,我们推荐设置『存储桶加密』,通过对存储桶设置加密可对新上传至该存储桶的所有对象默认以指定的加密方式进行加密,这样即便底层数据丢失、被窃其他人也无法获取到数据内容,从而保证数据的安全性。
xinjwang王健
2022/04/07
1.9K0
【最佳实践】巡检项:Elasticsearch Service(ES)节点熔断诊断
Elasticsearch Service 提供了多种官方的熔断器(circuit breaker),用于防止内存使用过高导致 ES 集群因为 OutOfMemoryError 而出现问题。每个熔断器都指定了它可以使用多少内存的限制。此外,还有一个父级熔断器,它指定可以跨所有熔断器使用的内存总量。
shanizeng
2022/04/10
2.2K0
【最佳实践】巡检项:Elasticsearch Service(ES)集群热点现象
注:在分片分布均匀的情况下,如果查询请求中指定了routing参数,也会导致查询请求聚集于某一部分分片,造成请求不均匀。
shanizeng
2022/08/22
1.4K0
【最佳实践】巡检项:对象存储(COS)500 状态码
某客户反馈自己在并发上传或下载对象时会出现500的错误,500错误码产生的原因为:
xinjwang王健
2022/04/07
4950
【最佳实践】巡检项:对象存储(COS)503 状态码
某客户反馈自己在并发上传或下载对象时会出现503的错误,降低并发数时就不会出现这类问题。
xinjwang王健
2022/04/07
8280
【最佳实践】巡检项:TDMQ备份消费者检查
在 TDMQ Pulsar 版控制台中,订阅代表一个具体的消费者以及其对某个 Topic 的订阅关系。当一个消费者订阅了某个 Topic 之后,则该 Topic 下的消息均可以被其消费。一个订阅可以订阅多个 Topic ,例如用户在一个 Topic 下创建了一个订阅后,其不仅会订阅当前的 Topic,还会订阅系统自动创建的重试队列 Topic。
邓愉悦
2022/03/29
4260
InnoDB,5项最佳实践,知其所以然?
第一篇,说说MySQL两个最常用的存储引擎,MyISAM和InnoDB。照自己的理解,把一些知识点总结出来,不只说知识点,多讲“为什么”。 一、关于count(*) 知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。
架构师之路
2018/08/17
3430
【最佳实践】巡检项:对象存储(COS)400 状态码
可以通过对应返回body的Message信息来确定问题的原因,如下示例报错原因为请求参数不符合要求
xinjwang王健
2022/04/07
2.9K0
【最佳实践】巡检项:对象存储(COS)日志管理配置
COS对象存储日志管理功能能够记录对于指定源存储桶的详细访问信息,并将这些信息以日志文件的形式保存在指定的存储桶中,以实现对存储桶更好的管理。
吴硕卫
2022/04/18
7660
InnoDB,5项最佳实践,知其所以然?
InnoDB,5项最佳实践,知其所以然?
Java架构师必看
2021/09/29
1590

相似问题

在用户控件之间共享依赖项属性

13

在依赖项之间共享属性

12

引用共享依赖项版本-最佳实践是什么

12

在项目之间共享类的最佳实践

20

无法在绑定项控件之间拖放项

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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