wpf 资源被多个地方引用互相抢资源的问题

zmidl 2018-01-27 10:25:15
如题 我有A界面的a 控件
一个B界面的b控件
它俩同时引用了 C资源 这个时候 A界面的 a.Conten="{StaticResource C}" ok的
切换到B界面了 这个时候B界面的b.Conten="{StaticResource C}" 也ok的
当返回到A界面的时候 a控件的Content没了
请懂的朋友指点下吧 多谢了。
...全文
503 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmidl 2018-03-01
  • 打赏
  • 举报
回复
引用 1 楼 From_TaiWan 的回复:
是不是这种情况呢?

class C
{
    public static string Resource;
    //............

}

a.Conten=C.Resource; 然后 b.Conten=C.Resource; C.Resource=“”; 此时,a.Conten就没了
我是通过xaml标记定义了资源 反正第一个静态引用了后 第二个就就没了 表现为两个抢资源的现象
zmidl 2018-03-01
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
WPF中的资源根本没什么“互抢”的概念,如果存在的话,那资源字典的存在就没什么意义,倒是换成了每个xaml中自己去定义resource,这样造成资源代码的冗余。 返回A界面之后的操作wpf要重新编译xaml,解析各种设置绑定,资源定义在那个位置也重要,是页面级别,还是应用程序级别,你最好贴出资源的定义位置以及页面与资源的关系,看是否存在动态资源绑定的可能。
就是呀 资源本来就是共享的 没有“互抢”的概念的。用了2楼的方法 搞定了 x:Shared="false"
zmidl 2018-03-01
  • 打赏
  • 举报
回复
引用 6 楼 jiangfling 的回复:
要懂到这个,你得理解什么事面向对象编程。。。。
你是来灌水的吧。
xinbada1985 2018-01-31
  • 打赏
  • 举报
回复
你先看看你是不是设定双向绑定了!你是不是在B页面的时候把他清空 了
PaulyJiang 2018-01-30
  • 打赏
  • 举报
回复
要懂到这个,你得理解什么事面向对象编程。。。。
exception92 2018-01-29
  • 打赏
  • 举报
回复
WPF中的资源根本没什么“互抢”的概念,如果存在的话,那资源字典的存在就没什么意义,倒是换成了每个xaml中自己去定义resource,这样造成资源代码的冗余。 返回A界面之后的操作wpf要重新编译xaml,解析各种设置绑定,资源定义在那个位置也重要,是页面级别,还是应用程序级别,你最好贴出资源的定义位置以及页面与资源的关系,看是否存在动态资源绑定的可能。
  • 打赏
  • 举报
回复
要想很好地、便捷地编程设计 UI 程序,使用 MVVM 架构,那么你的不同界面可以通过绑定同一个 ViewModel 对象来做到联动效果。你不能弄一个界面控件放到不同容器中,而应该分别创建不同的控件,但是绑定同一个 ViewModel 对象。
  • 打赏
  • 举报
回复
界面控件对象,只能放到一个父容器控件中。当你把它放到b里边,它首先就会从a里边删除自己。 这是微软的各种控件框架的通用原理,经得起测试。把一个控件放到不同容器中的想法时完全经不起测试的。
cheng2005 2018-01-29
  • 打赏
  • 举报
回复
<BitmapImage x:Key="ButtonDeleteContent" x:Shared="false" UriSource="../Images/delicon.png" />
x:Shared="false"
秋的红果实 2018-01-27
  • 打赏
  • 举报
回复
是不是这种情况呢?

class C
{
    public static string Resource;
    //............

}

a.Conten=C.Resource; 然后 b.Conten=C.Resource; C.Resource=“”; 此时,a.Conten就没了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧