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

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

如何從另一個(gè)窗口調(diào)用MainWindow方法?

如何從另一個(gè)窗口調(diào)用MainWindow方法?

C#
HUX布斯 2023-08-13 09:40:19
我需要從另一個(gè)窗口中的 MainWindow 調(diào)用方法。問(wèn)題是我不知道為什么會(huì)出現(xiàn)錯(cuò)誤,我想修復(fù)它。我嘗試使用各種方式調(diào)用該函數(shù),但沒(méi)有一個(gè)起作用。這是我最后一次嘗試:我想打電話(huà):namespace Class1{    public partial class MainWindow : Window    {        ...        public void SkipVideo()        {            ...        }    }}這是我嘗試撥打電話(huà)的方式:namespace Class1{    public partial class TimeWindow : Window    {        ...        private void DemoVideo_MediaEnded(object sender, RoutedEventArgs e)        {            ((MainWindow)Application.Current.MainWindow).SkipVideo();        }    }}沒(méi)有構(gòu)建錯(cuò)誤,但是當(dāng)我運(yùn)行該程序時(shí),它會(huì)執(zhí)行以下操作: System.InvalidCastException: 'Unable to cast object of type 'Class1.TimeWindow' to type 'Class1.MainWindow'.'
查看完整描述

3 回答

?
12345678_0001

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

這InvalidCastException意味著您的應(yīng)用程序的主窗口是TimeWindow.


如果確實(shí)有一個(gè)MainWindowopen,你可以像這樣獲取它的引用:


private void DemoVideo_MediaEnded(object sender, RoutedEventArgs e)

{

    MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();

    if (mainWindow != null)

        mainWindow.SkipVideo();

}

有更好的方法來(lái)處理這個(gè)問(wèn)題,例如使用 @Christopher 建議的 MVVM 設(shè)計(jì)模式,但這可能是考慮到您當(dāng)前設(shè)置的最簡(jiǎn)單的方法。


查看完整回答
反對(duì) 回復(fù) 2023-08-13
?
江戶(hù)川亂折騰

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

- 只是你應(yīng)該在 MainWindow 類(lèi)中執(zhí)行此代碼:


    public partial class MainWindow : Window

    {

            public static MainWindow _instance;

            public MainWindow()

            {

                _instance = this;

                InitializeComponent();

            }

private void SkipVideo()

{


}

    }

- 現(xiàn)在你可以調(diào)用任何方法、用戶(hù)控件等:


public partial class TimeWindow : Window

{

    ...

    private void DemoVideo_MediaEnded(object sender, RoutedEventArgs e)

    {

        MainWindow._instance.SkipVideo();

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-08-13
?
FFIVE

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

需要向?qū)嵗?code>TimeWindow傳遞對(duì)mainWindow實(shí)例的引用,以調(diào)用mainWindow.SkipVideo().?通常,當(dāng)您TimeWindowmainWindow.?TimeWindow 中的公共屬性或構(gòu)造函數(shù)參數(shù)可用于提交實(shí)例。

但是,您使用的是 WPF,這是一種 Windows 窗體編程方法。WPF/UWP 的設(shè)計(jì)考慮了 MVVM 模式。這不是 MVVM 模式。雖然您可以使用舊方法,但這樣做會(huì)錯(cuò)過(guò) WPF 大約 90% 的功能,并且在其他各個(gè)方面都會(huì)遇到問(wèn)題。如果你打算在 WPF 中工作,你肯定需要學(xué)習(xí) MVVM。MVVM 包括一種像這樣跨 Windows 共享數(shù)據(jù)/功能的方法。


查看完整回答
反對(duì) 回復(fù) 2023-08-13
  • 3 回答
  • 0 關(guān)注
  • 251 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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