Есть такая проблема при использовании WPF не срабатывает свойство set{}.
Model
public class Layer
{
private string _nameLayer;
public string NameLayer
{
get { return _nameLayer; }
set { _nameLayer = value; }
}
private bool _showLayer;
public bool ShowLayer
{
get { return _showLayer; }
set { _showLayer = value; }
}
private string _colorLayer;
public string ColorLayer { get; set; }
}
Есть ViewModel класс MainViewModel реализующий свойство
public Class MainViewModel:INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public MainViewModel
{
//в конструкторе получаем ObservableCollection<Layer> и передаем в свойство LayersCollection
}
private ObservableCollection<Layer> _layersCollection;
public ObservableCollection<Layer> LayersCollection
{
get
{
return _layersCollection ?? (_layersCollection = new ObservableCollection<Layer>());
}
set
{
_layersCollection = value;
OnPropertyChanged("LayersCollection");
}
}
}
И View (xaml)
<UserControl.Resources>
<mainViewModel:MainViewModel x:Key="Vm" />
</UserControl.Resources>
<Grid DataContext="{Binding Source={StaticResource Vm}}">
<DataGrid
Name="Layers"
AutoGenerateColumns="False"
CanUserResizeRows="False"
HorizontalGridLinesBrush="#FFE4DDDD"
ItemsSource="{Binding Path=LayersCollection, UpdateSourceTrigger=PropertyChanged}"
VerticalGridLinesBrush="#00000000">
<DataGrid.Columns>
<DataGridTextColumn
Width="*"
Binding="{Binding NameLayer}"
Header="Название слоя" />
<DataGridCheckBoxColumn
Width="auto"
Binding="{Binding ShowLayer}"
Header="Видимость" />
</DataGridTemplateColumn.CellTemplate>
</DataGrid.Columns>
</DataGrid>
</Grid>
При изменении во View коллекции свойство set{} не срабатывает, как решить проблему уже пробовал Model=TwoWay И UpdateSourceTrigger=PropertyChanged, но изменения не приходят в сеттер.
UpdateSourceTrigger и Mode нужно ставить в байнде выводимых свойств: NameLayer и ShowLayer.
Так же не помешало бы реализовать для вашего класса Layer интерфейс INotifyPropertyChanged, чтобы при изменении этих свойств они изменялись и в View. Ну и ObservableCollection поменять на BindingList.
Мне нужно загружать картинку из бд и отображать ее на екране в контроле Image, после чего в определенном моменте мне нужно очищать Source тоесть...
Загружаю сайт (html5 js css) локально, сайт грузится, но работает с тормозами, подскажите, в чем проблема?
Считается ли ошибкой использования Socket-ов для соединения веб-приложения MVC и клиентского десктопного приложения в проекте ASPNET Core?
В любом языке программирования существуют устойчивые конструкции проверенные временем, которые можно применять не боясь, что это будет...