第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

什么是ViewModelLocator?與DataTemplates相比,它的優(yōu)缺點(diǎn)是什么?

什么是ViewModelLocator?與DataTemplates相比,它的優(yōu)缺點(diǎn)是什么?

慕的地10843 2019-12-12 14:44:58
有人可以簡要概述一下ViewModelLocator是什么,它如何工作以及與DataTemplates相比使用它的優(yōu)點(diǎn)/缺點(diǎn)嗎?我曾嘗試在Google上查找信息,但似乎有許多不同的實(shí)現(xiàn)方式,而沒有關(guān)于它的含義以及使用它的利弊的詳盡列表。
查看完整描述

3 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

我有一個(gè)視圖模型定位器類。每個(gè)屬性都將是我將在視圖上分配的視圖模型的實(shí)例。我可以檢查代碼是否在設(shè)計(jì)模式下運(yùn)行或不使用DesignerProperties.GetIsInDesignMode。這使我可以在設(shè)計(jì)時(shí)使用模擬模型,并在運(yùn)行應(yīng)用程序時(shí)使用真實(shí)對象。


public class ViewModelLocator

{

    private DependencyObject dummy = new DependencyObject();


    public IMainViewModel MainViewModel

    {

        get

        {

            if (IsInDesignMode())

            {

                return new MockMainViewModel();

            }


            return MyIoC.Container.GetExportedValue<IMainViewModel>();

        }

    }


    // returns true if editing .xaml file in VS for example

    private bool IsInDesignMode()

    {

        return DesignerProperties.GetIsInDesignMode(dummy);

    }

}

要使用它,我可以將定位器添加到App.xaml資源中:


xmlns:core="clr-namespace:MyViewModelLocatorNamespace"


<Application.Resources>

    <core:ViewModelLocator x:Key="ViewModelLocator" />

</Application.Resources>

然后將您的視圖(例如:MainView.xaml)連接到您的視圖模型:


<Window ...

  DataContext="{Binding Path=MainViewModel, Source={StaticResource ViewModelLocator}}">


查看完整回答
反對 回復(fù) 2019-12-12
  • 3 回答
  • 0 關(guān)注
  • 1135 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號