nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

XAMLでstaticなプロパティをバインドする

いつも忘れて過去のコードを探しに行くのでメモを。

例えば、つぎのようなViewModelLocatorがあったとします。

public static class ViewModelLocator
{
    public static MainWindowViewModel MainWindowViewModel => new MainWindowViewModel();

実際には直接newする訳ではなく、DIコンテナなどからインスタンスを取得します。newするだけならViewModelLocatorをわざわざ用意する必要はなく、XAMLに直接記述すればよいでしょう。

これをXAMLでバインドするには次のように記述します。

<Window 
        ...
        xmlns:viewModel="clr-namespace:ViewModel;assembly=ViewModel"
        DataContext="{x:Static viewModel:ViewModelLocator.MainWindowViewModel}">

以上です。 簡単ですね。