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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WPF C# RadioButton 可見性在類中不起作用

WPF C# RadioButton 可見性在類中不起作用

C#
慕田峪7331174 2023-08-20 15:57:48
我使用 BoolToVisConverter 綁定 RadioButton 可見性。我將其放入 xaml 文件中:xmlns:VM="clr-namespace:ScreenS.ViewModel" <Window.DataContext>    <VM:MainViewModel /></Window.DataContext><Window.Resources>    <BooleanToVisibilityConverter x:Key="BoolToVisConverter" /></Window.Resources>  <RadioButton x:Name="SCB0" Visibility="{Binding ShowSCB0, Converter={StaticResource BoolToVisConverter}, FallbackValue=Hidden}" />在 MainViewModel 文件中,我輸入:using System.ComponentModel;namespace ScreenS.ViewModel{public class MainViewModel : INotifyPropertyChanged{    private bool _scb0;    private void NotifyPropertyChanged(string info)    {        if (PropertyChanged != null)        {            PropertyChanged(this, new PropertyChangedEventArgs(info));        }    }    public event PropertyChangedEventHandler PropertyChanged;    public bool ShowSCB0    {        get { return _scb0; }        set        {            _scb0 = value;            NotifyPropertyChanged("ShowSCB0");        }    }}最后,在 MainWindow 文件中,我設置:public MainWindow()    {        InitializeComponent();        DataContext = new MainViewModel();    }    MainViewModel mainView => DataContext as MainViewModel;    private void Window_Loaded(object sender, RoutedEventArgs e)    {        mainView.ShowSCB0 = true;    }到目前為止,一切都運行良好。問題是當我嘗試從另一個類更改這個值時。我在用:class abc{    MainViewModel viewModel = new MainViewModel(); public void someFunction()    {            viewModel.ShowSCB0 = true;    }這不會設置可見性..我有點迷失了,我哪里錯了?
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經(jīng)驗 獲得超5個贊

您必須注意實例化視圖模型的方式,尤其是在共享視圖模型時?,F(xiàn)在,所有依賴類型都使用自己的實例MainViewModel(或不同的引用)。這就是為什么修改一個實例的值不會反映在另一個實例上。


利用ResourceDictionary. 考慮MainViewModel通過在 App.xaml 資源內創(chuàng)建共享實例來使全局可訪問。


應用程序.xaml


<Application ... >

  <Application.Resources>

    <ResourceDictionary>


      <VM:MainViewModel x:Key="SharedMainViewModel" />

    </ResourceDictionary>

  </Application.Resources>

</Application>

主窗口.xaml


<Window.DataContext>

  <StaticResource ResourceKey="SharedMainViewModel" />

</Window.DataContext>

MainWindow.xaml.cs (固定構造函數(shù))


public MainWindow()

{

  InitializeComponent();   

  // The DataContext is initialized via XAML   

}

Abc.cs


class Abc

{

  private MainViewModel mainViewModel; 


  public Abc()

  {

    this.mainViewModel = Application.Current.Resources["SharedMainViewModel"] as MainViewModel;

  }

}


查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 178 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號