• Литература для изучения C# с нуля?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Язык программирования C# 5.0 и платформа .NET 4.5 Эндрю Троелсен
    Ответ написан
    Комментировать
  • Как прописать команды на кнопки для DataGrid в WPF?

    yarosroman
    @yarosroman
    C# the best
    Советую почитать про Entity Framework, DataBinding и MVVM.
    Ответ написан
    Комментировать
  • С сего начать изучение c# и wpf?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Язык программирования C# 5.0 и платформа .NET 4.5 Эндрю Троелсен эта книга поможет вам, для начала стоит изучить сам С#, потом уже стоит приступать к WPF, по XAML есть много книг. Так же потом стоит посмотреть, что такое MVVM, и как его реализовать, какие есть фреймворки для этого. Опять же разработка на WPF, WinRT, Silverlight основана на технологии XAML(отличия есть, но принципы разметки одни и те же). Освоив, что то одно, проще будет освоить и другие.

    Вот еще www.microsoftvirtualacademy.com, есть несколько курсов и по C# и XAML
    Ответ написан
    1 комментарий
  • Как удалить элемент из ReadOnlyCollection?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Скопировать все элементы в другую коллекцию, удалить там, и вернуть опять в read only
    Ответ написан
    Комментировать
  • Как правильно передать данные между формами?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Сделать класс-модель, и в форме два переделать конструктор, который принимает эту модель в качестве параметра, а в форме два, по событию от кнопки на форме два, заполнять модель, и далее после ShowDialog, смотреть результат диалога и уже заполнять вашу таблицу,

    например
    public clacc Model
    {
       string Name {get;set;}
       int Age {get; set;}
    }


    в AddFormWindow делаем так
    public class AddFormWindow 
    {
        private Model _model;
    
        public AddFormWindow(Model value) : base()
       {
            if (value!=null)
            {
                 _model=value;
            }
            else
                throw new ArgumentNullException("Can`t be NULL");
       }
    
        public void addFormBtn_Click(object sender, EventArgs e)
        {
             _model.Name=NameBox.Text;
            _model.Age=Int32.Parce(Agebox.Text);
        }
    }


    в коде вызова пишем
    Model model = new Model();
    addForm addFormWindow = new addForm(model);
    if (addFormWindow.ShowDialog()==DialogResult.OK)
    {
    //делаем тут необходимые манипуляции, все данные из формы находятся в model
    }


    естественно свойствам DialogResult кнопок на форме2 присваиваем необходимые значения DialogResult.Ok и DialogResult.Cancel

    В какой технологии написано все? для WinForms можно использовать паттерн MVP, для WCF (да и вообще XAML) лучше перейти на MVVM, тогда уберется взаимосвязанность объектов, появится возможность тестирования, повторность использования объектов.
    Ответ написан
  • Windows Universal app. Хранение интерфейса в БД и его динамическая загрузка во время выполнения, как?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    XamlReader вам в помощь, у него есть метод Parse, из XAML в строке возвращает объект. Привязку событий к элементам в вашем Xaml нельзя использовать, придется в ручную обходить дерево и привязывать события.

    В своем проекте я делал разделение прав на основе поведений (Behaviors), сделал наследников от стандартного Behaviors(которые устанавливают свойства Visibilyty, Enabled), и в зависимости от роли пользователя, в XAML выглядит так

    <CheckBox IsChecked="{Binding Paid, Mode=TwoWay}">
              <i:Interaction.Behaviors>
                       <sb:EnabledBehavior IsEnabled="True" AuthService="{Binding Auth, Mode=OneWay, Source={StaticResource asp}}" UserRoles="EditEcoData,SetPaid" />
               </i:Interaction.Behaviors>
    </CheckBox>


    AuthService, класс в котором есть методы для определения прав.

    Те, если у пользователя есть роли необходимые, то checkbox будет активным, иначе нет.
    можно сделать, такое и на Visibilyty.
    Ответ написан
    Комментировать
  • Как определить что ViewModel была изменена из DataGrid?

    yarosroman
    @yarosroman
    C# the best
    подписаться на событие CollectionChanged коллекции, в параметрах события будете получать измененные объекты коллекции, делаем еще одну коллекцию, в которую сохраняем изменения, и при нажатии на кнопку, передаем изменения из этой коллекции.
    Ответ написан
    Комментировать
  • Как работает binding к свойству свойства зависимости?

    yarosroman
    @yarosroman
    C# the best
    INotyfyPropertyChanged, грубо говоря необходимо реализовать этот интерфейс в объекте привязки, при изменении свойств необходимо вызывать событие PropertyChangedEventHandler, которое уведомляет свойство, к которому идет привязка о изменении объекта привязки. DependencyProperty реализует этот интерфейс. Одним словом, если мы пишем так
    Ответ написан
    Комментировать
  • Как сделать Binding до Point X?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Никак, ибо привязку в XAML поддерживают только DependencyProperty, а тут это лишь простое свойство типа double. Про стрелочки, посмотрите стиль ComboBox, там стрелка рисуется при помощи Path, а у него есть уже ширина и высота, которые поддерживают привязку.
    Ответ написан
    Комментировать