【发布时间】:2018-12-18 01:47:50
【问题描述】:
我有一个 WPF 按钮,当单击按钮时,我试图在其上方或顶部显示一个 WPF 弹出窗口:
<StackPanel Grid.Column="3">
<Button x:Name="btnPrint"
FocusVisualStyle="{x:Null}"
Style="{DynamicResource MyButtonStyle}"
Margin="15 5 5 5" Height="29"
IsEnabled="{Binding BtnPrintEnabled}"
Command="{Binding btnPrintCommand}"
IsTabStop="False">
Print
</Button>
<Popup IsOpen="{Binding IsPrintPopupOpen}" StaysOpen="False" >
<Border Background="LightYellow">
<TextBlock>Sending to print ...</TextBlock>
</Border>
</Popup>
</StackPanel>
Popup 绑定到视图模型中的属性,因此当单击按钮时,会执行按钮命令。命令在视图模型中执行以下方法:
private void ImprimirRemesa()
{
IsPrintPopupOpen = true;
// Do some things
IsPrintPopupOpen = false;
}
private bool _isPrintPopupOpen = false;
public bool IsPrintPopupOpen
{
get
{
return _isPrintPopupOpen;
}
set
{
if (_isPrintPopupOpen = value) return;
_isPrintPopupOpen = value;
OnPropertyChanged("IsPrintPopupOpen");
}
}
但它不起作用。什么都没有发生。
【问题讨论】:
-
if(_isPrintPopupOpen == value) 你是缺少 '=' 还是只是一个错字
-
如何更改 IsPrintPopupOpen 的值?
-
没有调用
ImprimirRemesa()方法中的“没有任何反应”,或者没有显示弹出窗口中的“没有任何反应”? -
@tabby 是的,你是对的。这就是问题所在。
-
@Babbillumpa 如代码所示,我做了一个赋值,IsPrintPopupOpen = true。
标签: c# wpf visual-studio-2008 .net-3.5 popupwindow