PDA

View Full Version : این برنامه چطوری نوشته شده؟ چطوری می شه کدهاشو خوند؟



ali2914
چهارشنبه 02 مرداد 1398, 20:53 عصر
با سلام دوستان.
این سورس مربوط به یه برنامه خارجیه که مربوط به خانه های هوشمند هست به صورت نمونه هستش و خیلی برام مهمه . مشکل اینه که ظاهرا فرم اصلی برنامه (Main Window) به صورت XAML نوشته شده و من اصلا نمی دونم چطوری کدهای فرم اصلی را می شه خوند . اصلا برنامه این مدلی تا حالا ندیده بودم . کسی می دونه چطوری کدهایی که برای منو های فرم اصلی برنامه نوشته شده را می تونم ببینم؟ مثلا با انتخاب منوی Open در برنامه چه کدی اجرا می شه؟
ممنون از کمک دوستان.
(برنامه را می خواستم آپلود کنم سایزش 8 مگه سایت اجازه نمی ده . اصلشو آپلود کردم ظاهرا موقع باز کردنش باید به نت متصل باشین تا از NUGET کتابخونه هاشو دانلود کنه . با عرض معذرت به خاطر زحمتی که به دوستان می دم . اما قضیه برام خیلی مهمه . و چون یه نوع برنامه نویسی متفاوت داره که حداقل من تا حالا ندیدم دوستانی که دانلود می کنن ممکنه مطلب جدیدی در برنامه نویسی تجربه کنن.)

ژیار رحیمی
چهارشنبه 02 مرداد 1398, 23:16 عصر
سلام.
این یه نمونه demo کار با FalconSDK.NET هست که رابط گرافیکی اون با WPF پیاده سازی شده. شما میتونی با WinForm هم با FalconSDK کار کنی اگر آشنایی با WPF نداری.
https://support.knx.org/hc/en-us/articles/360000932564-What-is-the-Falcon-NET-SDK-

ali2914
جمعه 04 مرداد 1398, 12:02 عصر
سلام.
این یه نمونه demo کار با FalconSDK.NET هست که رابط گرافیکی اون با WPF پیاده سازی شده. شما میتونی با WinForm هم با FalconSDK کار کنی اگر آشنایی با WPF نداری.
https://support.knx.org/hc/en-us/articles/360000932564-What-is-the-Falcon-NET-SDK-

سلام . ممنون . کمک بزرگی کردین . شما با فالکون کار کردین؟ می تونم سوالی داشتم مطرح کنم؟

ali2914
جمعه 04 مرداد 1398, 12:53 عصر
آقا ممنون . فقط یه مشکل دیگه . چون عملکرد این برنامه فقط با منوهاشه . اما وقتی یه منو را انتخاب می کنم و Event هاش رو می بینم هیچ Event براش ثبت نشده و هیچ کدی برای رویدادهاش نوشته نشده.

ali2914
جمعه 04 مرداد 1398, 13:14 عصر
خوب یه چیزی پیدا کردم . تو کد XAML مثلا مربوط به منوی Open نوشته :<MenuItem Header="_Open" Command="{Binding DoOpenBusCommand}"/> که منو متصل شده به فرمان DoOpenBusCommand اما DoOpenBusCommand را باید از کجا پیدا کنم؟

ali2914
جمعه 04 مرداد 1398, 13:28 عصر
خوب DoOpenBusCommand رو توی کلاسها پیدا کردم اما چطوری می تونم مشابه اون رو توی حالت winform پیاده کنم؟

ali2914
شنبه 12 مرداد 1398, 16:52 عصر
راستش به سختی WPF را به WinForm تبدیل کردم اما یه بخش از کدهاش مشکل دارم مثلا کد Dispatcher.CheckAccess و Dispatcher.BeginInvoke ظاهرا Dispatcher فقط مربوط به WPF هست و معادلی در Windows Form نداره. اصلا هم نمی دونم مربوط به چیه و ظاهرا کلیدی هم هست . کسی می تونه کمک کنه؟

ali2914
شنبه 12 مرداد 1398, 17:01 عصر
سلام.
این یه نمونه demo کار با FalconSDK.NET هست که رابط گرافیکی اون با WPF پیاده سازی شده. شما میتونی با WinForm هم با FalconSDK کار کنی اگر آشنایی با WPF نداری.
https://support.knx.org/hc/en-us/articles/360000932564-What-is-the-Falcon-NET-SDK-

سلام در مورد کار با فالکون با WinForm می تونید کمکی کنید؟ من سعی کردم برنامه FalconDemo را از WPF به WinForm تبدیل کنم بخش اعظم کارش انجام شد .اما به مشکل برخوردم . می تونید کمکی کنید؟ خیلی هم نیاز دارم.

barnamenevisjavan
شنبه 12 مرداد 1398, 17:18 عصر
خوب یه چیزی پیدا کردم . تو کد XAML مثلا مربوط به منوی Open نوشته :<MenuItem Header="_Open" Command="{Binding DoOpenBusCommand}"/> که منو متصل شده به فرمان DoOpenBusCommand اما DoOpenBusCommand را باید از کجا پیدا کنم؟


راستش به سختی WPF را به WinForm تبدیل کردم اما یه بخش از کدهاش مشکل دارم مثلا کد Dispatcher.CheckAccess و Dispatcher.BeginInvoke ظاهرا Dispatcher فقط مربوط به WPF هست و معادلی در Windows Form نداره. اصلا هم نمی دونم مربوط به چیه و ظاهرا کلیدی هم هست . کسی می تونه کمک کنه؟
سلام تو wpf ایونت هارو میشه متصل (bind) کرد به command در واقع این الگوی mvvm هستش و DoOpenBusCommand اسم کامند هستش بگردید تو کلاس ها تابعش رو پیدا میکنید
dispatcher در واقع امکان این رو میده تا به ترد دسترسی داشته باشیم و اشیا رو کنترل کنیم چون اگه شما یه ترد دیگه ایجاد کنید از داخل اون ترد نمیتونید اشیایی رو که توی ترد اصلی هستن کنترل کنین برای همین باید از دیسپچر استفاده کنید
https://docs.microsoft.com/en-us/dotnet/api/system.windows.threading.dispatcher?view=netframew ork-4.8