我有一个按钮,显示一个包含信息的网格和一个关闭该网格的按钮。 通过使visibility属性= Visible来显示网格的代码正在运行,但是折叠/隐藏网格的代码不起作用。
以下是示例XAML代码:
<Grid x:Name="gridSubmittedOrderDetails" HorizontalAlignment="Center"
VerticalAlignment="Center" MinWidth="500" MinHeight="200"
MaxWidth="600" Visibility="{Binding OrderDetailsVisibility}"/>
&#39;知名度&#39; viewmodel中的属性:
private Visibility orderDetailsVisibility;
public Visibility OrderDetailsVisibility
{
get { return orderDetailsVisibility; }
set
{
if (orderDetailsVisibility != value)
{
orderDetailsVisibility = value;
Notify("OrderDetailsVisibility");
}
}
}
显示网格的工作代码:
var context = (SubmittedOrdersViewModel)DataContext;
context.OrderDetailsVisibility = Visibility.Visible;
应该隐藏网格的代码,但不是:
var context = (SubmittedOrdersViewModel)DataContext;
context.OrderDetailsVisibility = Visibility.Collapsed;
无论谁能弄明白背后的神秘面纱,谢谢。 :)
答案 0 :(得分:1)
代码看起来很好。可能您的viewmodel不在Grid的DataContext中。 简单的方法是在调试模式下启动应用程序并查看“输出”窗口并确认您的绑定工作正常。
输出窗口显示所有绑定失败。
或者,您也可以在OrderDetailsVisibility
getter中放置一个断点,以查看它返回的值,并确认它已被您的网格使用。