我试图坚持使用MVVM设计模式的尝试让我在旋转.我有一个视图,是一个网站位置的选择列表.我有一个viewmodel,视图从中获取数据上下文,并且我已经使用按钮等绑定了一些项目(yay!).
现在我正在尝试从视图中的按钮单击切换当前视图. 
通过单击"开始维护"按钮,我想将视图切换到另一个具有不同视图模型的视图.
所以我知道MVVM只是一种设计模式,似乎有很多不同的实现MVVM导航的方式.但是我看到的大多数这些解决方案都指向了一个主导航窗格,这不是我打算做的.
我现在计划尝试使用带有MVVM光信使模式的viewmodellocator来尝试让我的观点改变.但是在过去3天试图让这件事情发挥作用后,我正在变得绝望.关于如何实现这个有什么其他建议吗?我喜欢Sheridan对类似帖子的回答:WPF MVVM导航视图,因为它避免使用工具包/框架.但我认为答案可能对我来说太模糊了,我无法实现它,因为我不明白如何改变观点(Sheridan的自定义中继消息很难像新手一样).
帮助请你互联网Denizens!:)如果你能指出我也会赞赏的任何例子!
所以我希望改变我的程序,以便我可以运行一个函数来检查前景色是否应该是黑色或银色。我希望将“不可访问”的字段涂灰。
我的表格目前看起来像:

我希望将“无需维护”字段“变灰”。但是我在尝试为数据模板中的字体前景定义绑定元素时遇到问题。
我已经尝试了从尝试在主窗口代码中定义 IValueConverter 类到定义窗口键资源的所有方法,但似乎我无法在文本块元素本身的数据模板中执行此操作?
任何建议/帮助将不胜感激。谢谢!
XAML:
<Grid Margin="0,0,2,0">
<ListBox x:Name="allSites_LB"
HorizontalAlignment="Left"
Height="400"
Margin="20,60,0,0"
VerticalAlignment="Top"
Width="945"
Loaded="allSites_LB_Loaded"
BorderThickness="1" SelectionChanged="allSites_LB_SelectionChanged"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
>
<ListBox.ItemTemplate >
<DataTemplate >
<Border BorderBrush="Black" BorderThickness="0,0,0,1" Margin="-20,1,0,1" Padding="0,5,0,5" >
<Grid Margin="75,3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="400" />
<ColumnDefinition Width="345" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding SiteNo}" Grid.Column="0" FontSize="16" />
<TextBlock Text="{Binding Address}" Grid.Column="1" FontSize="16" Margin="50,1" />
<TextBlock Text="{Binding MaintStatus}" Grid.Column="2" FontSize="16" />
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button x:Name="viewHistory_BTN"
Content="View History"
HorizontalAlignment="Left"
Height="52"
Margin="20,496,0,0"
VerticalAlignment="Top"
Width="172" FontSize="20" …Run Code Online (Sandbox Code Playgroud)