gpt4 book ai didi

wpf - 如何将 DependencyProperty 添加到按钮?

转载 作者:行者123 更新时间:2023-12-04 10:00:46 25 4
gpt4 key购买 nike

我基本上只是想向按钮添加几个属性来存储一些额外的信息以供以后使用。我选择这样做而不是基于按钮创建 UserControl 仅仅是因为它看起来像更少的代码。

我按照我在 Microsoft 网站上看到的示例进行操作,但收到错误消息“无法在 'Button' 类型的 'SetSortIndicatorVisibility' 属性上设置 'Binding'。'Binding' 只能在DependencyObject 的 DependencyProperty。”这没有意义,因为 Button 是一个 DependencyObject,而我正在添加一个 DependencyProperty。我最初是从一个 AttachedProperty 开始的,但我已经修复了它。我什至已经将与此相关的所有代码放入测试项目中,但我仍然收到此错误。所有这些测试代码如下:

依赖属性定义:

public static readonly DependencyProperty SortIndicatorVisibilityProperty = DependencyProperty.Register( "SortIndicatorVisibility", typeof( Visibility ), typeof( Button ), new FrameworkPropertyMetadata( Visibility.Visible, FrameworkPropertyMetadataOptions.AffectsRender ) );

public static void SetSortIndicatorVisibility( Button button, Visibility value )
{
button.SetValue( SortIndicatorVisibilityProperty, value );
}
public static Visibility GetSortIndicatorVisibility( Button button )
{
return ( Visibility ) button.GetValue( SortIndicatorVisibilityProperty );
}

窗口 XAML 包含具有新属性和绑定(bind)的按钮:
<Window x:Class="Testing.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ext="clr-namespace:Testing"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Test"
Command="{Binding TestCommand}"
ext:Class1.SortIndicatorVisibility="{Binding SortIndicatorVisibilitySiteName}" />
</Grid>

最后,DependencyProperty 绑定(bind)到的属性:
public Visibility SortIndicatorVisibilitySiteName
{
get
{
return Visibility.Visible;
}
}

最佳答案

您不能将“普通”依赖属性添加到任意类,它必须是附加属性。此外,所有者类型不应为 Button ,应该是声明属性的类

关于wpf - 如何将 DependencyProperty 添加到按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com