Silverlight 从一个控件禁用另一个控件中的按钮
嗨,我正在silverlight开发Win 8 metro应用程序 我有两个控件Control1和Control2 控件2在控件1内 Control2有一个列表视图,Control1有按钮。单击listview必须禁用Control1中的按钮 我试图通过使用Silverlight 从一个控件禁用另一个控件中的按钮,silverlight,windows-phone-7.1,windows-8,Silverlight,Windows Phone 7.1,Windows 8,嗨,我正在silverlight开发Win 8 metro应用程序 我有两个控件Control1和Control2 控件2在控件1内 Control2有一个列表视图,Control1有按钮。单击listview必须禁用Control1中的按钮 我试图通过使用 public bool OverriddenFlag { get { return _overriddenFlag; } set { _overriddenFlag= value;
public bool OverriddenFlag
{
get { return _overriddenFlag; }
set
{
_overriddenFlag= value;
NotifyPropertyChanged("OverriddenFlag");
}
}
在xaml中
<Button x:Name="ShowDetails" FontWeight="bold" FontSize="12" Content="+" click="ShowDetails_Click" IsEnabled="{Binding OverriddenFlag, Mode=OneWay}"/>
但它没有禁用按钮。
如何禁用按钮。有什么想法吗?OverrideFlag应该是Control2中的依赖项属性,因此:
public static readonly DependencyProperty OverriddenFlagProperty = DependencyProperty.Register("OverriddenFlag",
typeof(bool), typeof(Control2), null);
public bool OverriddenFlagProperty
{
get { return (bool)GetValue(OverriddenFlagProperty); }
set
{
SetValue(OverriddenFlagProperty, value);
}
}
然后尝试将绑定修改为:
<Button x:Name="ShowDetails" IsEnabled="{Binding OverriddenFlag, ElementName=Control2}"/>
你似乎很困惑。如果您正在使用Windows8 Metro应用程序,那么您既没有使用Silverlight也没有使用WindowsPhone 7,但您可能正在使用XAML和C。如果您正在使用Silverlight应用程序,那么您没有使用Windows8应用程序。感谢您的反馈。我还没有试过你的代码,但我会试试。我对frameworkelement做了我想做的事情,比如代码frameworkelement fe=frameworkelement this.Parent;而fe.GetType.Name!=控件fe=FrameworkElementfe.Parent;按钮_Button=Buttonfe.FindNamebutton_button.IsEnabled=false@TonyHi Tony,我像你说的那样试过了,但是它并没有改变按钮的状态,即使在控件中单击了一个项目2。在control2中,我将OverridedEnglag设置为true;