visible="false"不呈现hidden()面板,但是对包含的元素执行数据绑定.为什么这样做?更重要的是,如何避免它?
这是一个烦人的例子:
<asp:Panel ID="UserPanel" runat="server" visible="<%# SelectedUser != null %>">
<%# SelectedUser.Name %>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)
如果SelectedUser是null,则不会渲染面板,但SelectedUser.Name会对其进行评估并生成错误.
我显然可以写,<%# SelectedUser != null ? SelectedUser.Name : "" %>但它会增加混乱.
当我知道不需要时,有没有办法简单而优雅地阻止面板内的数据绑定?
该Panel控制在这里并不重要,它可能是一个普通的HTML元素的占位符runat="server".
我需要让一个Panel可以在WPF中进行聚焦,这样它就像任何其他可聚焦控件一样捕获键盘事件:
KeyDown或KeyUp事件我FocusManager.IsFocusScope="True"在Panel上进行了实验并myPanel.Focus()返回,true但仍未调用Panel KeyUp事件处理程序.
我错过了什么吗?