在列表框WPF中绑定组合框

时间:2015-07-15 08:26:32

标签: c# wpf combobox listbox datatemplate

我是WPF的新手,我正在尝试填充我的列表框中的combox控件

XAML:

        <Window.Resources>
    <DataTemplate x:Key="UserTemplate" >
      <StackPanel Orientation="Horizontal" >
        <ComboBox Name="rule" ItemsSource="{Binding}" DisplayMemberPath="DataContext.RuleType"  Width="85" Height="20"
          SelectedValuePath="DataContext.RuleType" SelectedValue="{Binding Path=DataContext.RuleType}"/>
        <TextBlock Text="{Binding Path= Name1}" Width="85" Margin="5,5,5,5"></TextBlock>
        <Button Content="Delete" Click="cmdDeleteUser_Clicked" Margin="5,5,5,5" />
        <Button Content="Add" Click="cmdAddUser_Clicked" Margin="5,5,5,5" />
      </StackPanel>
    </DataTemplate>

  </Window.Resources>

  <Grid>
    <ListBox Name="lbUsers" ItemsSource="{Binding }" ItemTemplate="{StaticResource UserTemplate}"/>
  </Grid> 

背后的代码:

        public ObservableCollection<User> Users;
        ObservableCollection<Listdata> listeddata;
        ObservableCollection<Records> Record;


        public MainWindow()
        {
            InitializeComponent();
            Users = new ObservableCollection<User>() {
                    new User() { Name = "", Age = "" },
                 };

            DataboundListbox.Records record = new Records();
            RuleType = record.record_Rule();
            lbUsers.DataContext = Users;

        }
        private string _Name;
        public string Name1
        {
            get { return _Name; }
            set
            {
                if (value != _Name)
                {
                    _Name = "John";
                    NotifyPropertyChanged("Name");
                }
            }
        }
        private List<string> _RuleType;
        public List<string> RuleType
        {
            get { return _RuleType; }
            set
            {
                if (value != _RuleType)
                {
                    _RuleType = value;
                    NotifyPropertyChanged("RuleType");
                }
            }
        }

        private void NotifyPropertyChanged(string info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

        private void cmdDeleteUser_Clicked(object sender, RoutedEventArgs e)
        {
            Button cmd = (Button)sender;
            if (cmd.DataContext is User)
            {
                User deleteme = (User)cmd.DataContext;
                Users.Remove(deleteme);
            }
        }
        private void cmdAddUser_Clicked(object sender, RoutedEventArgs e)
        {
            Button cmd = (Button)sender;
            if (cmd.DataContext is User)
            {
                var addedUser = new User() { Name = "", Age = "" };
            Users.Add(addedUser);
            }
        }


        private List<string> _prp;
        public List<string> prp
        {
            get { return _prp; }
            set
            {
                if (value != _prp)
                {
                    _RuleType = value;
                    NotifyPropertyChanged("prp");
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged; 

0 个答案:

没有答案