是否可以将TextBlock的Text绑定到应用程序AssemblyVersion?

时间:2014-08-15 11:52:51

标签: c# wpf data-binding version-numbering

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

WPF:

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

的AssemblyInfo.cs

[assembly: AssemblyVersion("1.0.0.0")]

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

这是一个纯粹的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对于从方法调用中检索结果非常有用。