Флажок WPF в сетке данных не запускает команду ретрансляции в модели представленияC#

Место общения программистов C#
Ответить
Anonymous
 Флажок WPF в сетке данных не запускает команду ретрансляции в модели представления

Сообщение Anonymous »


У меня есть сетка данных внутри элемента табуляции, в которой есть столбец «Шаблон данных флажка». Данные привязаны к наблюдаемой коллекции, содержащей столбец CheckboxChecked внутри класса. Когда этот элемент изменяется в классе и отображается в привязке, INotifyPropertyChanged срабатывает правильно.
Однако я пытаюсь запустить событие, подобное этому событию Binding Checkbox Click. внутри ItemsControl для просмотра модели
Я прочитал так много статей и попробовал множество решений, что не уверен, какая часть моего кода вызывает проблему.Позволь мне знаете, есть ли что-нибудь еще, что нужно знать?
Это XAML для TabItem
























Это ресурсы Windows








Это AutoDealingViewModel
namespace AutoTradingSystem_v07.ViewModel
{
public class AutoDealingViewModel : ViewModelBase
{
//This will bind to the DataGrid instead of the TestEntities
public CollectionViewSource ViewSource { get; set; }
//Notice no OnPropertyChange, just a property
private static AutoDealingViewModel instance;
public ObservableCollection EpicParams { get; set; }

public AutoDealingViewModel()
{
instance = this;
EpicParams = new ObservableCollection();
//Initialize the view source and set the source to your observable collection
this.ViewSource = new CollectionViewSource();
ViewSource.Source = EpicParams;
InitialiseViewModel();
Clicked = new RelayCommand(ExecuteClicked);
}
private void ExecuteClicked()
{
}

public ICommand Clicked { get; }
private void ExecuteClicked(object isChecked)
{
if ((bool)isChecked) { }

int I = 0;
}

public static AutoDealingViewModel getInstance()
{
return instance;
}
// Other code below

}
}

Это ViewModelBase
namespace AutoTradingSystem_v07.ViewModel
{
public abstract class ViewModelBase : INotifyPropertyChanged
{
public enum TradeSubscriptionType
{
Opu = 0,
Wou = 1,
Confirm = 2
}

public static string CurrentAccountId;
public void InitialiseViewModel()
{

SmartDispatcher smartDispatcher = (SmartDispatcher)SmartDispatcher.getInstance();
smartDispatcher.setViewModel(ApplicationViewModel.getInstance());
if (RunningEnv.RunEnvironment.Type() == "PRD")
{
_Env = "live";
}
else { _Env = "demo"; }

//Clicked = new RelayCommand(ExecuteClicked());
}
public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}

protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
{
var handler = PropertyChanged;
handler?.Invoke(this, args);
}
}
}

namespace AutoTradingSystem_v07.Model
{
public class EpicParamsMainModel
{
public class EpicParamsModel : INotifyPropertyChanged
{
private string _epic;
public string Epic
{
get
{
return _epic;
}
set
{
_epic = value;
OnPropertyRaised("Epic");
}
}
private bool _checkboxChecked;
public bool CheckboxChecked
{
get
{
return _checkboxChecked;
}
set
{
_checkboxChecked = value;
OnPropertyRaised("CheckboxChecked");
}
}
private String _marketState;
public String MarketState
{
get
{
return _marketState;
}
set
{
_marketState = value;
OnPropertyRaised("MarketState");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyRaised(string propertyname)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyname));
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -viewmodel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»