gpt4 book ai didi

wpf 根据数据应用静态资源

转载 作者:行者123 更新时间:2023-12-04 06:45:27 25 4
gpt4 key购买 nike

如何根据数据按名称应用静态资源?我知道我可以为样式属性编写数据触发器,但我想根据绑定(bind)数据应用整个样式。

前任:
if (条件) CellValuePresenterStyle="{StaticResource OptionalFieldCellPresenter}"
否则 CellValuePresenterStyle="{StaticResource RequiredFieldCellPresenter}"

最佳答案

您可以编写一个自定义转换器来处理这个问题。 Converter 类如下所示:

//''' <summary>
//''' Returns a Style based upon the text that is passed into the Convert
//''' function in the 'value' object.
//''' </summary>
//''' <remarks></remarks>
Public Class NameToStyleConverter
Implements IValueConverter

Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Dim styleName As String = CStr(value)
Dim styl As System.Windows.Style

styl = Application.Current.TryFindResource(styleName)

Return styl

End Function

Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Throw New NotImplementedException("This method or operation is not implemented.")
End Function
End Class

在您的窗口的 XAML 中,您将拥有以下内容:
<Window.Resources>
<local:NameToStyleConverter x:Key="NameToStyleConverter"/>
</Window.Resources>

其中 'local' 是为您的应用程序定义的命名空间。

实现可能如下所示:
Style="{Binding Path=MyStyleNameText, Converter={StaticResource NameToStyleConverter}"

或者,您可以随时从代码中引用转换器。你传入一个字符串,它会返回一个样式。

关于wpf 根据数据应用静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790734/

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