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

نام تاپیک: مشکل در بایند کردن tabcontrol

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اهواز
    پست
    302

    مشکل در بایند کردن tabcontrol

    من یکobservablecollection تعریف کردم به این شکل :

    private ObservableCollection<HeaderDetail> _tabs;
    public ObservableCollection<HeaderDetail> Tabs
    {
    get { return _tabs; }
    set { SetValue(ref _tabs, value); }



    }



    و یک کلاس هم به این شکل:



    public class HeaderDetail
    {

    public IList<PageShowRec> Header { get; set; }
    public IList<DetailRec> DetailPesrson { get; set; }



    }



    و یک تب کنترل هم دارم به این شکل:



    <TabControl x:Name="_tabControl" ItemsSource="{Binding Tabs}">
    <TabControl.ItemContainerStyle>
    <Style TargetType="TabItem">
    <Setter Property="Header" Value="{Binding Header}"/>
    <Setter Property="Content" Value="{Binding DetailPesrson}"/>
    </Style>
    </TabControl.ItemContainerStyle>
    </TabControl>




    و متدی دارم به این شکل:

    Tabs = new ObservableCollection<HeaderDetail>();

    Tabs.Add(new HeaderDetail { Header = objDetail.CurPageShowList });
    Tabs.Add(new HeaderDetail { DetailPesrson = objDetail.CurDetailList });






    میخوام تب کنترل هدر و محتوای اون از این observablecollection پر بشه ولی پر نمیشه ایا مشکلی تو کدها است؟

  2. #2

    نقل قول: مشکل در بایند کردن tabcontrol

    سلام
    احتمالا مشکل از اینه که پروپرتی های Header و DetailPesrson در کلاسِ HeaderDetail را از نوعِ لیست گرفتین .
    این پروپرتی ها را چون در TabItem تون Binding کردین ، باید آیتم های تکی باشن . یعنی از نوع لیست نباشن .

    نوعِ DetailRec تون نمیدونم از چه نوعی هست . ولی استانداردش اینه که از نوعِ Panel ای باشه که شامل محتوا و کنترل هایی که در اون TabItem تون میخواد مشخص بشه .

  3. #3

    نقل قول: مشکل در بایند کردن tabcontrol

    نقل قول نوشته شده توسط ma.andishe مشاهده تاپیک
    من یکobservablecollection تعریف کردم به این شکل :

    private ObservableCollection<HeaderDetail> _tabs;
    public ObservableCollection<HeaderDetail> Tabs
    {
    get { return _tabs; }
    set { SetValue(ref _tabs, value); }



    }



    و یک کلاس هم به این شکل:



    public class HeaderDetail
    {

    public IList<PageShowRec> Header { get; set; }
    public IList<DetailRec> DetailPesrson { get; set; }



    }



    و یک تب کنترل هم دارم به این شکل:



    <TabControl x:Name="_tabControl" ItemsSource="{Binding Tabs}">
    <TabControl.ItemContainerStyle>
    <Style TargetType="TabItem">
    <Setter Property="Header" Value="{Binding Header}"/>
    <Setter Property="Content" Value="{Binding DetailPesrson}"/>
    </Style>
    </TabControl.ItemContainerStyle>
    </TabControl>




    و متدی دارم به این شکل:

    Tabs = new ObservableCollection<HeaderDetail>();

    Tabs.Add(new HeaderDetail { Header = objDetail.CurPageShowList });
    Tabs.Add(new HeaderDetail { DetailPesrson = objDetail.CurDetailList });






    میخوام تب کنترل هدر و محتوای اون از این observablecollection پر بشه ولی پر نمیشه ایا مشکلی تو کدها است؟
    مدل بصورت زیر تغییر کنه
    public string Header { get; set; }
    public string Content { get; set; }

    البته Contentرو بعدا میتونید تغییر بدید
    نحوه افزودن شما اشتباه هست و هر دو پراپرتی باید توی یک خط مقدار دهی بشه ن اینکه 2 تا instance جدا ایجاد کنید
    Tabs.Add(new TabItem { Header = "One", Content = "One's content" });
    Tabs.Add(new TabItem { Header = "Two", Content = "Two's content" });


    itemtemplate و contenttemplate رو اورراید کنید و پراپرتی هارو بایند کنید
    <TabControl.ItemTemplate>
    <DataTemplate>
    <TextBlock
    Text="{Binding Header}" />
    </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
    <DataTemplate>
    <TextBlock
    Text="{Binding Content}" />
    </DataTemplate>
    </TabControl.ContentTemplate>

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اهواز
    پست
    302

    نقل قول: مشکل در بایند کردن tabcontrol

    اگر بخوام برای هر کانتنت محتوای متفاوت مثلا یکی لیست نشون یکی گرید چکار باید بکنم؟ اگه میشه با سمپل نشون بدید ممنون میشم

  5. #5

    نقل قول: مشکل در بایند کردن tabcontrol

    نقل قول نوشته شده توسط ma.andishe مشاهده تاپیک
    اگر بخوام برای هر کانتنت محتوای متفاوت مثلا یکی لیست نشون یکی گرید چکار باید بکنم؟ اگه میشه با سمپل نشون بدید ممنون میشم
    اول باید تمپلیت رو تغییر بدی
    <TabControl.ContentTemplate>
    <DataTemplate>
    <ContentControl
    Content="{Binding Content}" />
    </DataTemplate>
    </TabControl.ContentTemplate>

    بعد پراپرتی رو به جای استرینگ نوع مناسب قرار بدی تا بتونی توش گرید یا چیز دیگه بزاری

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اهواز
    پست
    302

    نقل قول: مشکل در بایند کردن tabcontrol

    نقل قول نوشته شده توسط barnamenevisjavan مشاهده تاپیک
    اول باید تمپلیت رو تغییر بدی
    <TabControl.ContentTemplate>
    <DataTemplate>
    <ContentControl
    Content="{Binding Content}" />
    </DataTemplate>
    </TabControl.ContentTemplate>

    بعد پراپرتی رو به جای استرینگ نوع مناسب قرار بدی تا بتونی توش گرید یا چیز دیگه بزاری

    ممنون از پاسختون

تاپیک های مشابه

  1. سوال: tabcontrol
    نوشته شده توسط goli_bushehr در بخش C#‎‎
    پاسخ: 5
    آخرین پست: یک شنبه 07 اسفند 1390, 08:42 صبح
  2. حرفه ای: کد رفتن به یکی از تب های tabcontrol
    نوشته شده توسط hahaie در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 25 اسفند 1389, 14:29 عصر
  3. سوال: کار با tabControl
    نوشته شده توسط shahrzad87 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 30 آذر 1388, 08:29 صبح
  4. سوال: کمک فوری در مورد فیلتر کردن اطلاعات در TabControl
    نوشته شده توسط vahid_csharp.net در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 03 آبان 1388, 18:45 عصر

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

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