مشاهده نسخه کامل
: update : WPF نشدن datagrid بهنگام تغییر پراپرتی بایند شده
سلام.
من دیتاگریدم رو به یک پراپرتی که در CodeBehind همان Window تعریف شده بایند کرده ام .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در CodeBehind :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و در Constructor :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی زمانی که به پراپرتی Lst_Servers آیتمی اضافه می کنم ، دیتاگریدم آپدیت نمی شود !
یه جا سرچ کردم گفته بود خود کلاسی که ازش پراپرتی ساختی (در مثال من کلاس Server ) رو هم باید از اینترفیس INotifyPropertyChanged به ارث ببری ، ولی اون کار رو هم کردم نشد !!!
راهنمایی لطفا ..
بسم الله الرحمن الرحیم.
سلام دوست عزیز خسته نباشید.
شما نمیتونید یک لیست معمولی رو به دیتاگرید بایند کنید و تغییرات رو در دیتاگرید مشاده کنید باید بجای استفاده از List از کلاس ObservableCollection استفاده کنید.چون لیست هایی که بایند میشن از یک Notify Change مخصوص لیست پیروی میکنند.
نمونه ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
موفق و سربلند باشید در پناه حق.
سلام .من نوع لیستم رو به ObservableCollection تغییر دادم ولی باز لیست تغییر می کنه ولی دیتاگرید نه !!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بسم الله الرحمن الرحیم.
سلام.
مشکل شما در بایند کردن کدوم یک از این دوتاست:
1.ساخت لیست جدید و انتساب دادن به دیتاگرید
2.درج یک آیتم در لیست
در کدوم یک از این گزینه ها مشکل بایند دارید؟
اگر DataContext فرم یا دیتاگرید رو رو مقدار لیست دادید کد xaml زیر رو از :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تغییر بدید.
بسم الله الرحمن الرحیم.
سلام.
مشکل شما در بایند کردن کدوم یک از این دوتاست:
1.ساخت لیست جدید و انتساب دادن به دیتاگرید
2.درج یک آیتم در لیست
در کدوم یک از این گزینه ها مشکل بایند دارید؟
من می خوام هر تغییری که در لیست موردنظرم در CodeBehindدادم( که به عنوان پراپرتی قرار دادم ) در دیتاگریدم اعمال بشه . فکر می کنم به مورد دومی که شما گفتید بخوره ، در واقع می خوام در CodeBehind مستقیم Content دیتاگریدم رو تغییر ندم و با اینکار یه جورایی از امکانات Wpf استفاده کنم . حالا نمی دونم تا چه اندازه این روشم درسته!
اگر DataContext فرم یا دیتاگرید رو رو مقدار لیست دادید کد xaml زیر رو از :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تغییر بدید.
ItemsSource دیتاگریدم رو برابر لیستم قرار دادم با :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
درست شد. ممنون
ولی نمی شد بدون اینکه لیستم رو به دیتاگرید در CodeBehind نسبت بدم و فقط با نسبت دادن در xaml درست بشه ؟؟
بسم الله الرحمن الرحیم.
سلام.
ولی نمی شد بدون اینکه لیستم رو به دیتاگرید در CodeBehind نسبت بدم و فقط با نسبت دادن در xaml درست بشه ؟؟
بله میشه.
برای اینکار بهتره به روش MVVM کد نویسی کنید که با یک جستجو نمونه های زیادی توی اینترنت می بینید.
مثلاً اگر نام کنترل شما بشه UserControl1.xaml سپس کلاسی که قرار ViewModel کنترل شما بشه اسمش میشه UserControl1ViewModel.cs سپس این کلاس رو به صورت مستقیم با کد xaml توی کنترل مورد نظرتون new میکنید و بایند های خودتون رو از جمله لیست و .... بدون نوشتن یک خط کد در cs کنترل میتونید مدیریت کنید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.