Преобразование данных из строки в флажок с помощью ivalueconverter в WPF
У меня проблема с моим приложением. Я создаю приложение с помощью WPF. У меня есть данные, которые импортируются из БД с помощью observablecollection, часть этих данных (одно свойство) является строкой, и я хочу привязать эти данные к флажкам, которые выглядят так
(abc_abcd/abc_abcd/abc_abcd.....)каждый abc_abcd он должен быть связан с одним флажком( эта строка является авторизацией пользователя и хранится в базе данных как одна строка, но когда я хочу привязать ее к флажкам, я должен пролить ее, а затем сравнить со статическим значением для каждого флажка, чтобы узнать, должен ли флажок tjis быть установлен или нет ). Я знаю, что мне следует использовать ivalueconverter, но я понятия не имею, как это сделать. любое решение, Пожалуйста......
class Operator { public string operatorname { get ; set; } public string operatorpassword { get; set; } public string authorisation { get; set; } public Boolean renew_password { get; set; } public int interval_of_change { get; set; } public int password_min_length { get; set; } public DateTime last_change { get; set; } }
class Databasecon { // First Binding for the Database public ObservableCollection<Operator> operators { get; private set; } public Databasecon() { this.operators = new ObservableCollection<Operator>(); } public void Datacon(string conn) { MySqlConnection con = null; MySqlCommand com = null; MySqlDataReader myreader = null; int columnOrdinaloperatorname = -1; int columnOrdinalauthorisation = -1; con = new MySqlConnection(conn); try { if (com == null) { com = new MySqlCommand("SELECT * FROM operators", con); com.Connection.Open(); myreader = com.ExecuteReader(); columnOrdinaloperatorname = myreader.GetOrdinal("operator_name"); columnOrdinalauthorisation = myreader.GetOrdinal("authorisation"); while (myreader.Read()) { this.operators.Add(new Operator() { operatorname = myreader.GetString(columnOrdinaloperatorname).ToString(), // authorisation can be Null in DB authorisation = (columnOrdinalauthorisation >= 0) ? (myreader.IsDBNull(columnOrdinalauthorisation) ? string.Empty : myreader.GetString(columnOrdinalauthorisation)) : string.Empty }); } } } catch (MySqlException ex) { MessageBox.Show(ex.ToString()); } finally { if (myreader != null) myreader.Close(); if (com != null) { if (com.Connection != null) com.Connection.Close(); } } } } pre> <pre lang="c#"></ class collect : INotifyPropertyChanged { string myconn = "SERVER=localhost;PORT=3306;UID=TestUser;PASSWORD=TestUser;DATABASE=heitel_db_v011"; private Databasecon databasecon = null; public event PropertyChangedEventHandler PropertyChanged; public ICommand Bindingcommand { get; set; } public ObservableCollection<Operator> operators { get { if (this.databasecon.operators != null) { return this.databasecon.operators; } else { return null; } } set { this.operators = value; RaisePropertyChanged("operators"); } } private void RaisePropertyChanged(string propertyName) { var handler = this.PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } public collect() { this.databasecon = new Databasecon(); Bindingcommand = new Relaycommands(() => databasecon.Datacon(myconn)); } }
class Relaycommands : ICommand { public event EventHandler CanExecuteChanged; private Action _command; public Relaycommands(Action command) { _command = command; } public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { if (_command != null) _command(); } }
Что я уже пробовал:
Я пытаюсь написать конвертер, но не могу. Я не знаю, когда мне следует разлить строковые данные в слова и сохранить их в массиве
[no name]
"но я не мог", и ты думаешь, мы бы знали, что это значит? Возможно, потому, что строки не являются флажками?
"когда я должен разлить строковые данные в слова", "сохранить их в массиве", главная ошибка, которую вы совершаете, заключается в том, что вы предполагаете, что случайные незнакомцы в Интернете знают что-либо о вашем проекте. У нас нет никакой информации о том, когда и почему вам нужно разбить эту строку или какое отношение имеет массив к чему-либо. Мы также понятия не имеем, какое отношение этот класс операторов имеет к чему-либо, поскольку он, по-видимому, не имеет никакого отношения ни к какому преобразователю значений.
Ahmad Aldali
извините, я редактирую свой quistion, объясняю все и ставлю весь код