none
关于在MVVM架构下WPF中UserControl的 visibility Binding问题。 RRS feed

  • 问题

  • 我在ViewModel中用一个枚举来定义页面状态,根据状态控制界面中的UserControl的显隐:

    ViewModel:

     



    类似的还有其他三个属性ChatEnabled、UserInfoEnabled、GroupMebEnabled,我通过控制MainState来控制界面UserControl的显隐:


    之前我也是这样做的,不过控制的是普通界面元素的显隐(如Button,Textbook等),但是我发现同样的方法用在UserControl上就不管用了(结果是全部显示)。我在DeBug下看过XAML中的变量:


    1、为什么这种方法用在UserControl中不行?

    2、是否是因为我用错了?

    3、有没有其他的更好的办法

    2015年11月2日 11:34

答案

  • 1、为什么这种方法用在UserControl中不行?

    2、是否是因为我用错了?

    这两个问题由于我们并没有完整的代码示例,所以不确定,你可以把demo上传onedrive,让我们研究一下。


    3、有没有其他的更好的办法

    可以参照这个回答中的做法, 自己定义一个converter 来将枚举状态转化成visibility的可选值。

    http://stackoverflow.com/questions/7000819/binding-a-button-visibility-to-bool-value-in-viewmodel


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年11月3日 13:16

全部回复

  • 1、为什么这种方法用在UserControl中不行?

    2、是否是因为我用错了?

    这两个问题由于我们并没有完整的代码示例,所以不确定,你可以把demo上传onedrive,让我们研究一下。


    3、有没有其他的更好的办法

    可以参照这个回答中的做法, 自己定义一个converter 来将枚举状态转化成visibility的可选值。

    http://stackoverflow.com/questions/7000819/binding-a-button-visibility-to-bool-value-in-viewmodel


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年11月3日 13:16
  • 我知道原因,但是我还没想到要怎么做才可以。

    你说的这个问题的原因是你在给ChatControl 的Visibility绑定值时,你又给这个控件的DataContext绑定了值。你把DataContext的这个绑定暂时删掉,你再看看是不是可以控制了?但是我也在想usercontrol如何绑定内容这个问题呢。



    Jason

    2015年11月24日 13:57