0

Подскажите, я создал Progress Bar по паттерну MVVM в отдельной сборке, в View добавил DataContect -View Model и теперь мне нужно его подключить в другой сборке и подсоединить все свойства к View, а именно Minimum,Value,Maximum, я добавил в reference - solution Wpf

Я очень долго ломал голову как это сделать, пожалуйста, подскажите, что нужно сделать для того чтоб подсоединить в другой сборке View и передавать нам в него свойства, мне нужно создать экземпляр только View или View и ViewModel, вот мой код:

class ProgressBarGltfViewModel : ViewModelBase
    {
        private int _minimum;
        public int Minimum
        {
            get { return _minimum; }
            set
            {
                _minimum = value;
                OnPropertyChanged("Minimum");
            }
        }

        private int _maximum;
        public int Maximum
        {
            get { return _maximum; }
            set { _maximum = value; OnPropertyChanged("Maximum"); }
        }

        private int _value;
        public int Value
        {
            get { return _value; }
            set { _value = value; OnPropertyChanged("Value"); }
        }

    }

    class ViewModelBase : INotifyPropertyChanged, IDisposable
    {

        protected ViewModelBase()
        {
        }

        public event PropertyChangedEventHandler PropertyChanged;

        public virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        public void Dispose()
        {
            this.OnDispose();
        }

        public virtual void OnDispose()
        {
        }

    }


    <Window.DataContext>
        <viewModel:ProgressBarGltfViewModel/>
    </Window.DataContext>

    <Grid Margin="20">
        <ProgressBar Minimum="{Binding Path=Minimum}" Maximum="{Binding Path=Maximum}" Value="{Binding Path=Value}" Name="pbStatus" ValueChanged="PbStatus_ValueChanged" />
        <TextBlock Text="{Binding ElementName=pbStatus, Path=Value, StringFormat={}{0:0}%}" HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
EvgeniyZ
  • 15,694
  • Вообще нечерта не понятно, что вы хотите... Давайте по порядку создал Progress Bar по паттерну MVVM - а к чему тут MVVM? ProgressBar - это View часть, не более, он не имеет VM/M слоев, от только отображает информацию. Дальше в View добавил DataContect - а тут я вам дам это. Подключить в другой сборке - что в вашем понятие "другая сборка"? Если это другой проект (dll например), то в чем трудности тогда? – EvgeniyZ Dec 04 '19 at 16:24
  • Хорошо, по порядку, создал WPF проект и хочу сделать в нем прогресс бар по паттерну MVVM, во View изобразил progress bar и хочу чтоб этот прогресс бар использовался в другой class library (dll) и я не пойму как мне начать его использовать в другой сборке (dll) . Что мне нужно сделать чтоб начать его использовать? Первое создать экзеспляр во view и передать в него параметр view model? – Виталик Сухомлин Dec 04 '19 at 19:37
  • Прочитайте про контролы, про DependencyProperty. Вам не нужна VM в библиотеке! Просто пишете <myDllNamespaceKey:MyProgressBar Min="{Binding MinValue}"> в нужном вам проекте, где myDllNamespaceKey - это в самом начале XAML файла подключенный namespace, все... – EvgeniyZ Dec 04 '19 at 20:03

0 Answers0