是否可以将 TextBlock 的文本绑定到应用程序组装版本?



如果我有一个TextBlock在我的UserControl的角落是有可能将文本属性绑定到我的汇编版本号,这是在AssemblyInfo.cs

WPF

:

<TextBlock Text="{Binding AssemblyVersion}"/>

AssemblyInfo.cs

[assembly: AssemblyVersion("1.0.0.0")]

创建一个名为AssemblyVersion的只读属性并绑定。

public Version AssemblyVersion
{
    get
    {
        return Assembly.GetEntryAssembly().GetName().Version;
    }
}

这是一个纯XAML方法

<TextBlock xmlns:ref="clr-namespace:System.Reflection;assembly=mscorlib">
    <TextBlock.Text>
        <Binding Path="Version">
            <Binding.Source>
                <ObjectDataProvider MethodName="GetName">
                    <ObjectDataProvider.ObjectInstance>
                        <ObjectDataProvider MethodName="GetExecutingAssembly"
                                            ObjectType="{x:Type ref:Assembly}" />
                    </ObjectDataProvider.ObjectInstance>
                </ObjectDataProvider>
            </Binding.Source>
        </Binding>
    </TextBlock.Text>
</TextBlock>

在这个例子中,我们利用ObjectDataProvider来检索所需的(正在执行的或者可以说是当前的)程序集,然后是它的版本。

ObjectDataProvider对于从方法调用中检索结果非常有用。

要获得程序集版本,可以在后面的代码中使用:

using System.Reflection;
using System.Diagnostics;
    #region - Version -
    /// <summary>
    /// Get the FileVersion
    /// </summary>
    public static string Version => FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
    #endregion - Version -

,在Xaml代码中:

<TextBlock Text="{Binding Version}"/>

相关内容

  • 没有找到相关文章

最新更新