c# - 如何将控件的属性绑定(bind)到另一个控件的属性?

标签 c# .net wpf binding properties

我希望我的表单中的 SaveButton 在表单被禁用时消失。 我这样做:

this.formStackPanel.IsEnabled = someValue;
if(this.formStackPanel.IsEnabled)
{
    this.saveButton.Visibility = Visibility.Visible;
}
else
{
    this.saveButton.Visibility = Visibility.Collapsed;
}

有没有办法在 XAML 中绑定(bind)这些属性?有更好的方法吗?

最佳答案

是的。您应该能够将堆栈面板的 IsEnabled 绑定(bind)到按钮的 Visibility 属性。但是,您需要一个转换器。 WPF 附带了一个 BooleanToVisibilityConverter 类,它应该可以完成这项工作。

<Window
  x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
  </Window.Resources>
  <StackPanel>
    <ToggleButton x:Name="toggleButton" Content="Toggle"/>
    <TextBlock
      Text="Some text"
      Visibility="{Binding IsChecked, ElementName=toggleButton, Converter={StaticResource BooleanToVisibilityConverter}}"/>
  </StackPanel>
</Window>

关于c# - 如何将控件的属性绑定(bind)到另一个控件的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9586956/

相关文章:

c# - ASP.NET MVC 将 ID 传递给 ActionLink

c# - 如何将变量严格键入为特定 WMI 类?

.net - 如何拦截 Boo 中的方法调用?

wpf - 如何关闭 DrawingBrush 的抗锯齿功能?

C# 在 LYNC 中自动接听电话

c# - 管理不在 Visual Studio 中引用的 DLL 的最佳方法是什么

WPF 复选框状态不会在固定页面中更新

WPF 弹出窗口在 Visual Studio 设计时永久显示

c# - 文件上传控件仅上传PDF

javascript - 如何将 Eval() 传递给 Javascript 函数