我想在MVVM模式之后开发一个UserControl,所以我创建了一个包含所有功能的ViewModel类。然后我意识到UserControl中的所有代码都是为了公开ViewModel的命令,属性和事件,所以我想我也可以将ViewModel作为从UserControl派生自己的基类。
所以我有类似的东西
private AdapterInterface adapterInterfaceListener;
基类看起来像这样
<local:MediaPlayerUIViewModel x:Class="EmergenceGuardian.MediaPlayerUI.MediaPlayerUI"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:EmergenceGuardian.MediaPlayerUI"
mc:Ignorable="d" Height="46" Width="800" x:Name="UI">
<local:MediaPlayerUIViewModel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MediaPlayerUI;component/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
<local:TimeSpanToDoubleConverter x:Key="TimeSpanToDoubleConverter"/>
<local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
</ResourceDictionary>
</local:MediaPlayerUIViewModel.Resources>
...
现在, Visual Studio拒绝在设计器中加载UserControl。它表示成员资源,高度和宽度无法识别或无法访问。
但是,它在Blend中加载并运行正常。只是Visual Studio设计师不喜欢它。有什么方法可以解决这个问题吗?
编辑:有时休息一下,稍后回来解决问题。关闭Visual Studio并重新打开它修复了问题!!
答案 0 :(得分:-1)
我认为你应该改变这个:
~/.ssh/config
到
<local:MediaPlayerUIViewModel x:Class="EmergenceGuardian.MediaPlayerUI.MediaPlayerUI"
<UserControl x:Class="EmergenceGuardian.MediaPlayerUI.MediaPlayerUI" ...
你也可以改变:
xmlns:local="clr-namespace:EmergenceGuardian.MediaPlayerUI"
只是<local:MediaPlayerUIViewModel.Resources>
您的实际代码:
<Resources>
仍然可以保持不变,一切都会有效。