【问题标题】:N-N table and WPF databindingN-N 表和 WPF 数据绑定
【发布时间】:2010-01-22 17:47:34
【问题描述】:

我有 3 个数据表:

用户

UserID, UserName
1、蝙蝠
2、约翰
等等……

会员

MemberID, Member
1、本地
2、专区
等等……

用户会员

UserID,MemberID
1, 1
1、2
2、1
等等……

关于用户在 WPF 中输入 XAML 表单
检查列表框绑定到Member 表。

我的问题:

我希望这样当用户检查成员类型时,选定的值会自动插入到UserMember 表中。当用户取消选中成员类型时,选定的值将从UserMember 表中删除。

如何在 WPF 中做到这一点?

【问题讨论】:

    标签: wpf data-binding binding


    【解决方案1】:

    这取决于你想使用什么样的软件方法(我喜欢带有 WPF 的 MVVM)什么样的 ORM(Linq、EF、Castle 等)。

    你可以像这样创建一个 ViewModel:

    public class UserViewModel
    {
      int UserId {get;set;}
      Collection<Member> MemberList {get;set;}
    }
    
    public class Member
    {
      bool _IsMember;
      bool IsMember 
      {get return _IsMember;set _IsMember = value; EditMemberStatus();}
      int MemberId {get;set;}
      string Member {get;set;}
    
      void EditMemberStatus()
      {
        if (IsMember)
          //Code to add row into db using your ORM choice
        else
          //Code to remove row from db
      }
    }
    

    在您的 xaml 中,您可以这样做:

    <ListView ItemsSource={Binding MemberList}>
      <ListView.View>
        <GridView>
          <GridViewColumn Header="IsMember"}>
            <CheckBox IsChecked="{Binding IsMember}"/>
          </GridViewColumn
          <GridViewColumn Header=Member DisplayMemberBinding={Binding Member}/>
        </GridView>
       </ListView.View>
    </ListView>
    

    最后在你的 xaml 后面的代码中你有这个

    public class UserView
    {
      UserView()
      {
         InitializeComponent(); 
         DataContext= new UserViewModel();
      }
    }
    

    这只是一个骨架,希望对您有所帮助。这也只是无数种方法中的一种。

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2013-03-08
      • 2021-10-29
      • 1970-01-01
      • 2023-03-12
      • 2010-09-15
      相关资源
      最近更新 更多