如果我有一个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}"/>