نمایش نتایج 1 تا 2 از 2

نام تاپیک: لود Region ها بر روی Event ها

  1. #1
    کاربر تازه وارد آواتار mehri_ema
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    سن
    36
    پست
    78

    Question لود Region ها بر روی Event ها

    با سلام
    من برنامه ای دارم با استفاده از ساختار MVVM که در اون از Region ها استفاده کردم.
    در Shell یک treeview دارم که می خواهم با کلیلک روی هر نود View مربوط به اون در Region بیاد این کارو چه طور می تونم انجام بدهم.

  2. #2
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: لود Region ها بر روی Event ها

    MVVM رو به شکل های مختلفی میشه پیاده سازی کرد (حالا نمیدونم شما چه روشی رو استفاده کردید) اما در کل برای اینکه بر اساس یک شرایطی یک view متناسب با یک viewmodel رو اگر بخواید در main view نشون بدید، به این شکل عمل میشه که در main view یک DataTemplate بصورت resource تعریف می کنید و DataType اون رو به کلاس ViewModel مورد نظر Set می کنید، و مقدار Template اون DataTemplate رو هم به کلاس View متناسب با اون ViewModel مقدار میدید. بعد اون container ای که قراره view ها در اون load بشن رو DataSource اش رو به viewModel، بایند می کنید. معمولا از کنترل ItemsControl به عنوان container استفاده میشه.
    نمونه کد:
    <Window.Resources>
    <DataTemplate DataType="{x:Type myViewModelsNameSpace:MyViewModel}">
    <myViewsNameSpace:MyView/>
    </DataTemplate>
    </Window.Resources>


    DataSource یا DataContext (بر اساس نوع container) کنترلی رو که به عنوان contiainer استفاده کردید رو bind می کنید به property از viewModel متناظر با MainView که اون property حاوی ViewModel ای هست که شما میخواین بر اساس اون یک View رو load کنین. اون DataTemplate باعث میشه که بر اساس نوع ViewModel ای که از طریق binding میاد به کانتینر، View تعریف شده در DataTemplate رو داخلش load کنه. به عبارت دیگه، اگر ViewModel ای bind شده به container، از نوع MyViewModel باشه، داخلش MyView لود میشه ، چون تو DataTemplate اینجوری تعریف شده. حالا شما اگر چند تا View رو میخواین نشون بدید، باید برای هر کدوم یک DataTemplate به همین صورت داشته باشید.

    موفق باشید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •