3

UserControl の隅に TextBlock がある場合、Text プロパティを AssemblyInfo.cs にあるアセンブリ バージョン番号にバインドできますか

WPF:

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

AssemblyInfo.cs

[assembly: AssemblyVersion("1.0.0.0")]
4

2 に答える 2

7

という名前の読み取り専用プロパティを作成してAssemblyVersionバインドします。

public Version AssemblyVersion
{
    get
    {
        return Assembly.GetEntryAssembly().GetName().Version;
    }
}
于 2014-08-15T11:58:26.093 に答える
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 は、メソッド呼び出しから結果を取得するのに非常に役立ちます。

于 2014-08-15T11:59:20.657 に答える