为了账号安全,请及时绑定邮箱和手机立即绑定

绑定在 Mvvm wpf 和 controltab 中不起作用

绑定在 Mvvm wpf 和 controltab 中不起作用

C#
陪伴而非守候 2023-09-24 11:20:48
您好,错误是第一次初始化我的选项卡,绑定工作,但是当我想更改 tabHeader 的值时,绑定不起作用。当我选择一个选项卡后,我想显示该按钮并隐藏所有未选择的选项卡的按钮,主页.xaml<TabControl TabStripPlacement="Top" ItemsSource="{Binding Tabs, Mode=TwoWay}" x:Name="ParentTab" SelectedItem="{Binding SelectedTab, Mode=TwoWay}">   <TabControl.ItemTemplate>      <DataTemplate>         <StackPanel Width="Auto" Orientation="Horizontal">            <TextBox Text="{Binding Guid, Mode=TwoWay}" Height="1" Width="1" Visibility="Hidden"></TextBox>            <Image Source="{Binding HeaderImg,  Mode=TwoWay}" Height="20" Width="20"/>            <Label Content="{Binding HeaderSrt, Mode=TwoWay}" Height="Auto" Width="Auto"/>            <Button Visibility="{Binding IsEnable, Mode=TwoWay}" Content="X" Height="Auto" Width="Auto" Command="{Binding DataContext.Cmd_CloseTab,ElementName=ParentTab}"/>         </StackPanel>      </DataTemplate>   </TabControl.ItemTemplate>   <TabControl.ContentTemplate>      <DataTemplate>         <ContentControl Content="{Binding Content}" />      </DataTemplate>   </TabControl.ContentTemplate></TabControl>在 HomeViewModel.cs 中public sealed class TabItem{   public string HeaderImg { get; set; }   public string HeaderSrt { get; set; }   public string Guid { get; set; }   public Visibility IsEnable { get; set; }   public ViewModelBase Content { get; set; }}public class AccueilViewModel : ViewModelBase{   private TabItem m_SelectedTab;   private ObservableCollection<TabItem> m_Tabs;   public ICommand Cmd_CloseTab { get; set; }   public ObservableCollection<TabItem> Tabs{      get{ return m_Tabs; }      set{ m_Tabs = value; RaisePropertyChanged("Tabs"); }   }   public TabItem SelectedTab{      get{ return m_SelectedTab; }      set{         m_SelectedTab = value;         m_SelectedTab.IsEnable = Visibility.Visible;         ActivateBtnClose();  // The binding don't work         RaisePropertyChanged("SelectedTab");         RaisePropertyChanged("Tabs");         }      }
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

更改TabItem为:


public sealed class TabItem : ViewModelBase

{

    private string _headerImg;

    private string _headerSrt { get; set; }

    private string _guid { get; set; }

    private Visibility _isEnable { get; set; }

    private ViewModelBase _content { get; set; }


    public string HeaderImg

    {

        get { return _headerImg; }

        set

        {

            _headerImg = value;

            RaisePropertyChanged("HeaderImg");

        }

    }


    // Set the properties for the other fields as above

}


查看完整回答
反对 回复 2023-09-24
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

答案是:


public sealed class TabItem: ViewModelBase

{


    public string HeaderImg { get; set; }

    public string HeaderSrt { get; set; }

    public string Guid { get; set; }


    //public bool IsEnable { get; set; }

    public ViewModelBase Content { get; set; }


    private Visibility _MessageVisibilty;

    public Visibility MessageVisibilty

    {

        get { return _MessageVisibilty; }

        set {

            _MessageVisibilty = value;

            RaisePropertyChanged("MessageVisibilty");}

    }

}


查看完整回答
反对 回复 2023-09-24
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信