Задать вопрос
Ответы пользователя по тегу C#
  • Как группу CheckBox прибиндить к одному свойcту во ViewModel?

    @Smilleey
    Может что-то вроде такого:
    <Grid DataContext="{Binding SelectedDaysObj}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="1*"/>
            </Grid.ColumnDefinitions>
            <StackPanel Orientation="Vertical" >
                <CheckBox Content="Mo" IsChecked="{Binding Mo}"/>
                <CheckBox Content="Tu" IsChecked="{Binding Tu}"/>
                <CheckBox Content="We" IsChecked="{Binding We}"/>
                <CheckBox Content="Th" IsChecked="{Binding Th}"/>
                <CheckBox Content="Fr" IsChecked="{Binding Fr}"/>
                <CheckBox Content="Sa" IsChecked="{Binding Sa}"/>
                <CheckBox Content="Su" IsChecked="{Binding Su}"/>
            </StackPanel>
            <ListBox Grid.Column="1" ItemsSource="{Binding DaysOfWeek}"/>
        </Grid>


    public partial class MainWindow
        {
            public SelectedDays SelectedDaysObj { get; set; }
            public MainWindow()
            {
                InitializeComponent();
                DataContext = this;
                SelectedDaysObj = new SelectedDays()
                {
                    Mo = true, Fr = true, Sa = true
                };
            }
            public class SelectedDays : INotifyPropertyChanged
            {
                public SelectedDays()
                {
                    _daysOfWeek = new ObservableCollection<DayOfWeek>();
                }
                private bool _mo;
                private bool _tu;
                private bool _we;
                private bool _th;
                private bool _fr;
                private bool _sa;
                private bool _su;
                private ObservableCollection<DayOfWeek> _daysOfWeek;
    
                public bool Mo
                {
                    get => _mo;
                    set
                    {
                        _mo = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Monday)) DaysOfWeek.Add(DayOfWeek.Monday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Monday)) DaysOfWeek.Remove(DayOfWeek.Monday);
                        }
                    }
                }
                public bool Tu
                {
                    get => _tu;
                    set
                    {
                        _tu = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Tuesday)) DaysOfWeek.Add(DayOfWeek.Tuesday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Tuesday)) DaysOfWeek.Remove(DayOfWeek.Tuesday);
                        }
                    }
                }
                public bool We
                {
                    get => _we;
                    set
                    {
                        _we = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Wednesday)) DaysOfWeek.Add(DayOfWeek.Wednesday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Wednesday)) DaysOfWeek.Remove(DayOfWeek.Wednesday);
                        }
                    }
                }
                public bool Th
                {
                    get => _th;
                    set
                    {
                        _th = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Thursday)) DaysOfWeek.Add(DayOfWeek.Thursday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Thursday)) DaysOfWeek.Remove(DayOfWeek.Thursday);
                        }
                    }
                }
                public bool Fr
                {
                    get => _fr;
                    set
                    {
                        _fr = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Friday)) DaysOfWeek.Add(DayOfWeek.Friday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Friday)) DaysOfWeek.Remove(DayOfWeek.Friday);
                        }
                    }
                }
                public bool Sa
                {
                    get => _sa;
                    set
                    {
                        _sa = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Saturday)) DaysOfWeek.Add(DayOfWeek.Saturday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Saturday)) DaysOfWeek.Remove(DayOfWeek.Saturday);
                        }
                    }
                }
                public bool Su
                {
                    get => _su;
                    set
                    {
                        _su = value;
                        OnPropertyChanged();
                        if (value)
                        {
    
                            if (!_daysOfWeek.Contains(DayOfWeek.Sunday)) DaysOfWeek.Add(DayOfWeek.Sunday);
                        }
                        else
                        {
                            if (_daysOfWeek.Contains(DayOfWeek.Sunday)) DaysOfWeek.Remove(DayOfWeek.Sunday);
                        }
                    }
                }
                public ObservableCollection<DayOfWeek> DaysOfWeek
                {
                    get => _daysOfWeek;
                    set
                    {
                        _daysOfWeek = value;
                        OnPropertyChanged();
    
                    }
                }
                #region inpc
                public event PropertyChangedEventHandler PropertyChanged;
                [NotifyPropertyChangedInvocator]
                protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
                {
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
                }
                #endregion
    
            }
        }
    Ответ написан
  • Как получать данные из БД каждые 10 секунд (Entity Framework)?

    @Smilleey
    Надо бы использовать MVVM, тогда можно будет принудительно использовать PropertyChanged. В данном случае всё будет нормально обновляться.
    Ответ написан
    Комментировать
  • Как ограничить использование своего декстоп-приложения (.exe) только тем, кто зарегистрирован у меня на сайте (как это выглядит примерно?)?

    @Smilleey
    Если совсем по-простому, то я бы сделал запрос на сайт с указанием логина пользователя после входа и возвращаемую строку с сайта (есть/нет доступа) для данного пользователя. Защита от дурака и при желании легко ломается.
    Ответ написан
    9 комментариев
  • Почему может лагать Visual Studio 2015?

    @Smilleey Автор вопроса
    Решил следующим путём:
    В настройках экрана выставил рекомендуемое "Изменение текста, приложений и других элементов" на рекомендуемое значение (200%), в итоге всё стало работать нормально. Раньше стояло 125%.
    Ответ написан
  • Как работать с вложенными классами?

    @Smilleey Автор вопроса
    Хотелось бы нечто следующее:
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                A test = new A();
                Console.WriteLine(test.B.testMethod());
                Console.ReadLine();
            }
        }
        class A
        {
            public class B
            {
                private string testB = "I'm test in class B";
                public string testMethod ()
                {
                    return testB;
                }
            }
        }
    }

    Но данный код вызывает ошибку -
    An object reference is required for the non-static field, method, or property 'A.B.testMethod()' и
    'B': cannot reference a type through an expression; try 'A.B' instead
    Ответ написан
  • Существуют ли шаблоны wpf приложений?

    @Smilleey Автор вопроса
    Я, честно говоря, предполагал, что это будет в следующем виде - вот пустой проект visual studio, в нём некоторый уже готовый интерфейс: в верху менюшка, снизу строка состояния, слева меню древовидное, по центру основное окно.
    Ответ написан
  • Как сделать установочный (.exe) файл?

    @Smilleey
    Ответ написан
    Комментировать