1

わかりました多分私は少しばかですが、アイテムを自分に追加してComboboxそれを取得する方法が見つかりませんSelectedItem。それで、私は何が恋しいですか?

現在のコード

LoginV.XAML

<ComboBox Height="23" Margin="102,2,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="155"
          IsEditable="True" 
          DisplayMemberPath="Loginname"
          ItemsSource ="{Binding alleBenutzer}"
          SelectedItem="{Binding selectedBenutzer}"/>

LoginVM.CS

    public List<User> alleBenutzer{ get; set; }
    public User selectedBenutzer
    {
        get { return _selectedBenutzer; }
        set
        {
            _selectedBenutzer = value;

            if (selectedBenutzer != null)
            {
                //do stuff
            }

            RaisePropertyChanged(() => Reg(() => benutzerEinrichtungen));
        }
    }

ユーザー.cs

public class User
    {
        public int Id { get; set; }
        public string Loginname { get; set; }
    }

概要

次の動作を提供するにはどうすればよいですか?
ユーザーがアプリを実行すると、Comboboxコントロールに「管理者」という単語が追加され、SelectedItem != nullできるようになりますif(selectedBenutzer.Loginname =="Admin") DoStuff;

4

2 に答える 2

0

さらに調査した結果、Text探していた値を含むプロパティにバインドする必要があることがわかりました

ここに簡単な例

XAML

    <ComboBox Height="23" HorizontalAlignment="Left" Margin="89,23,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" 
              IsEditable="True"                  
              ItemsSource="{Binding mySimpleItems}"
              SelectedItem="{Binding mySimpleItem}"
              Text="{Binding myNewSimpleItem}"/>

コード

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new SimpleVM();
        }
    }

    public class SimpleVM
    {    
        private string _mySimpleItem;
        private string _myNewSimpleItem;
        private bool isNew = true;

        #region properties

        public ObservableCollection<string> mySimpleItems { get; set; }

        public string mySimpleItem
        {
            get { return _mySimpleItem; }
            set
            {
                _mySimpleItem = value;
                if (_mySimpleItem != null)
                {
                    isNew = false;
                    MessageBox.Show(_mySimpleItem);
                }
                else
                    isNew = true;
            }
        }

        public string myNewSimpleItem
        {
            get { return _myNewSimpleItem; }
            set
            {
                _myNewSimpleItem = value;

                //if SelectedItem == null
                if (isNew) 
                    if (_myNewSimpleItem == "Super")
                    {
                        mySimpleItem = _myNewSimpleItem;
                        mySimpleItems.Add(_myNewSimpleItem);                            
                    }
            }
        }

        #endregion

        #region cTor

        public SimpleVM()
        {
            var ObCol = new ObservableCollection<string>();

            ObCol.Add("Max");
            ObCol.Add("Dennis");
            ObCol.Add("Lucas");

            mySimpleItems = ObCol;
        }

        #endregion
    }
于 2013-05-29T09:08:32.047 に答える