我有一个正在开发的应用程序,需要根据下拉列表中的选定值显示/隐藏控件。默认情况下,大多数控件将被隐藏,当从控制设备控件中选择一个值(“VFD”)时,隐藏的控件将变为可见。
我有一个名为 MCCLoads 的实体,它与驱动下拉列表的所有其他实体都有关系。
我要应用此功能的屏幕名为 MCCLoadsSetListDetail
我正在尝试使用这段代码,但我不确定这是否是正确的方法
public void MCCLoadsSetListDetail_SelectionChanged()
{
this.FindControl("CTRL_DEVICE").IsEnabled = true;
if (this.MCCLoadsSetListDetail.SelectedItem.Loads_CTRL_Device == "VFD")
{
this.FindControl("Line_Reactor_IMP").IsVisible = false;
}
}
提前致谢, 杰森
最佳答案
在屏幕的 Created 方法中订阅 ControlAvailable 事件。当它被触发时,您可以将 Silverlight 控件转换为 Windows 控件以订阅 SelectionChanged 事件。然后您可以根据需要对此做出回应...
partial void YourScreen_Created()
{
this.FindControl("YourDropDown").ControlAvailable += new EventHandler<ControlAvailableEventArgs>(YourDropDown_ControlAvailable);
}
void YourDropDown_ControlAvailable(object sender, ControlAvailableEventArgs e)
{
var ctrl = e.Control as AutoCompleteBox;
ctrl.SelectionChanged += new SelectionChangedEventHandler(ctrl_SelectionChanged);
}
void ctrl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
dynamic selectedItem = (sender as AutoCompleteBox).SelectedItem;
if (selectedItem == null)
{
return;
}
// Your logic goes here....
this.FindControl("CTRL_DEVICE").IsEnabled = true;
if (selectedItem.StringValue == "VFD")
{
this.FindControl("Line_Reactor_IMP").IsVisible = false;
}
}
希望这有助于...
关于visual-studio-lightswitch - 根据下拉列表值显示/隐藏控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452681/