MVVM | WPF MVVM case suitable for newcomers to learn | Model View Controller library
kandi X-RAY | MVVM Summary
kandi X-RAY | MVVM Summary
WPF MVVM case suitable for newcomers to learn
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of MVVM
MVVM Key Features
MVVM Examples and Code Snippets
Community Discussions
Trending Discussions on MVVM
QUESTION
I have a WPF app, linked to a SQL-server. I am using the MVVM-light package (I do actually have Prism.Core installed, but I'm not sure if I'm using it or not.... new to MVVM).
There's a DataGrid
, bound to an ObservableCollection
.
I have been trying to implement the PropertyChangedEventHandler
, but I can't seem to get it to work.
I have a Delete button bound, and I am able to remove rows, but when I re-open the form, the changes does not carry over.
I tried to change the binding-mode for the DataGrid
from OneWay
to TwoWay
. With OneWay
, the changes does not carry over when I re-open the form. With TwoWay
, I get this error message when opening the child form (which contains the DataGrid
):
System.InvalidOperationException: 'A TwoWay or OneWayToSource binding cannot work on the read->only property 'licenseHolders' of type 'Ridel.Hub.ViewModel.LicenseHoldersViewModel'.'
So, If I then add a set;
to my public ObservableCollection licenseHolders { get; }
,
the program runs, but the previous problem persists, like it did when there was a OneWay
mode configuration on the DataGrid
.
What do I need to do to get this to work without communicating directly with the Sql-server
, which would defy the whole point of using this methodology in the first place?
ANSWER
Answered 2021-Jun-15 at 13:26You are confusing topics. The VM needs InotifyPropertyChanged
events, which you have but are not using, to notify the Xaml in the front-end that a VMs property has changed and to bind to the new data reference.
This is needed for List
s or ObservableCollection
s. Once that is done, the ObservableCollection
will then send notifications on changes to the list as items are added or removed.
Because you miss the first step:
QUESTION
I'm writing an app in WPF, trying to use the MVVM-design pattern (which is new to me).
I have a DataGrid
bound to an ObservableCollection
.
Delete the currently selected DataGrid-row using a 'Delete'-button. I've tried a plethora of forum-posts and videos to find a solution. The solution has probably stared me right in the face several times, but at this point I'm more confused than I was when I first started.
Any assistance would be appreciated.
ViewModel (updated with working code, thanks to EldHasp):
...ANSWER
Answered 2021-Jun-14 at 20:15You can use Prism. Intall package Prism.Core then Install-Package Microsoft.Xaml.Behaviors.Wpf -Version 1.1.31
packages in your project, in your xaml declare namespace as - xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
QUESTION
So, I am working on an MVVM-based core SDK for use any time I am developing some Google Apps Script based software, called OpenSourceSDK
. It contain core business logic, including base classes to extend. For example, the file Models/BaseModel.gs
in it is defined to be:
ANSWER
Answered 2021-Jun-13 at 22:53I was able to get it resolved, but the solution is...hacky.
So, apparently, Google Apps Script exports only what is in globalThis
of a project: just the function
s and var
iables. No class
es, no const
ants, ...
Probably has a lot to do with how ES6 works, with its globalThis
behavior. One can see that in action, by creating a dummy function
, a dummy var
iable, and a dummy class
in their local developer console:
QUESTION
I'm developing an Avalonia App using ReactiveUI and MVVM. I want to display an image from a web URL, what would be the best course of action to achieve this ? I have setup the following Binding :
...ANSWER
Answered 2021-May-22 at 09:34You can download and store the Image in your ViewModel asynchronously, or using the download complete event for example like this:
QUESTION
I am developing a modular WPF application with Prism in .Net Core 5.0 (using MVVM, DryIoc) and I would like to have a module that is not a WPF module, i.e., a module with functionality that can be used by any other module. I don't want any project reference, because I want to keep the loosely coupled idea of the modules. My first question is: is it conceptually correct? Or is it mandatory that a module has a screen? I guess it should be ok.
The second and more important (for me) is, what would be the best way to create the instance?
This is the project (I know I should review the names in this project):
HotfixSearcher
is the main class, the one I need to get instantiated. In this class, for example, I subscribe to some events.
And this is the class that implements the IModule
interface (the module class):
ANSWER
Answered 2021-Jun-14 at 18:20Or is it mandatory that a module has a screen?
No, of course not, modules have nothing to do with views or view models. They are just a set of registrations with the container.
what would be the best way to create the instance?
Let the container do the work. Normally, you have (at least) one assembly that only contains public interface
s (and the associated enum
s), but no modules. You reference that from the module and register the module's implementations of the relevant interfaces withing the module's Initialize
method. Some other module (or the main app) can then have classes that get the interfaces as constructor parameters, and the container will resolve (i.e. create) the concrete types registered in the module, although they are internal
or even private
and completely unknown outside the module.
This is as loose a coupling as it gets if you don't want to sacrifice strong typing.
is there a way to get rid of that
var searcher = containerProvider.Resolve();
and a better way to achieve this?
You can skip the var searcher =
part :-) But if the HotfixSearcher
is never injected anywhere, it won't be created unless you do it yourself. OnInitialized
is the perfect spot for this, because it runs after all modules had their chance to RegisterTypes
so all dependencies should be registered.
If HotfixSearcher
is not meant to be injected, you can also drop IHotfixSearcher
and resolve HotfixSearcher
directly:
QUESTION
As i title suggests, i want to know what is the best and simplest method to create window from ViewModel in MVVM pattern.
...ANSWER
Answered 2021-Jun-14 at 15:28i want to know what is the best and simplest method to create window from ViewModel in MVVM pattern
"The best", "the simplest" are very subjective concepts.
For some, a simple implementation may be considered difficult by someone.
This topic is very large, and for a detailed answer to such a question, you will need to write a thick textbook.
Therefore, in short, general concepts, and an example of a possible implementation.
From the ViewModel's point of view, it cannot "know" what a Window is. So asking the question "How should a VM create a Window?" - it is not correct.
The question should be asked like this: "How does the VM call an external dialogue?".
How this dialog will be implemented (WPF Window, Form or Console Input) for the VM does not matter.
A dialog is, in fact, a delegate to a method that returns a dialog result.
In the simplest case, the diaolog's result is just a bool (success / failure).
Let's say OpenFileDialog.ShowDialog returns Nullable
.
In more complex cases, an enumeration is returned. Sample MessageBox.
What kind of dialogue result you need depends on the conditions of your task.
Suppose if this is an element editing dialog, then it receives an element for editing in its parameters, and it can return bool: true - editing is completed and its results need to be saved, false - editing cancellation.
Gets the ViewModel delegate, usually at the time of its creation.
This is called dependency injection.
A typical place for Dependency Injection is App.
An example will link to your previous topic WPF MVVM binding command to Datacontext inside Datagrid
QUESTION
I'm creating a WPF Molds app that contains 2 windows: MainWindow with DataGrid, and AddEditWindow which allows to Add/Edit Molds.
I have a EditButton which located in a TemplateColumn of DataGrid:
...ANSWER
Answered 2021-Jun-14 at 08:37In a Code-Behind, I could done something like this:
Take a closer look at your XAML.
You have a binding set in the CommanParameter property.
The binding instance is empty - this means that the binding occurs to the DataContext of the element in which it is specified.
Hence, in the command parameter, you will get this Data Context.
QUESTION
I'm following this tutorial on using MVVM with Retrofit
https://medium.com/@ronkan26/viewmodel-using-retrofit-mvvm-architecture-f759a0291b49
where the user places MutableLiveData inside the Repository class:
...ANSWER
Answered 2021-Mar-23 at 18:00The solution you're looking for depends on how your app is designed. There are several things you can try out:
- Keep your app modularized - as @ADM mentioned split your repository into smaller
- Move live data out of repository - it is unnecessary to keep live data in a repository (in your case singleton) for the entire app lifecycle while there might be only few screens that need different data.
- That's being said - keep your live data in view models - this is the most standard way of doing. You can take a look at this article that explains Retrofit-ViewModel-LiveData repository pattern
- If you end up with complicated screen and many live data objects you can still map entities into screen data representation with events / states /commands (call it as you want) which are pretty well described here. This way you have single
LiveData
and you just have to map your entities.
Additionaly you could use coroutines with retrofit as coroutines are recomended way now for handling background operations and have Kotlin support if you wanted to give it a try.
Also these links might halpe you when exploring different architectures or solutions for handling your problem architecture-components-samples or architecture-samples (mostly using kotlin though).
QUESTION
I know how to preserve the action we have done on UITableView
, after scrolling back and forth.
Now Iam doing a simple UITableView
on MVVM
which has a Follow button . like this.
Follow button changes to Unfollow after click and resets after scrolling.
Where and How to add the code to prevent this?
Here is the tableview Code
...ANSWER
Answered 2021-Jun-13 at 11:07I guess your main issue is with Button
title getting changed on scroll, so i am posting a solution for that.
Note-: Below code doesn’t follow MVVM.
Controller-:
QUESTION
I'am working on a simple tableView
project on swift with MVVM architecture. But when I tap a button on that tableView I'am getting an error like this:
Thread 1: Simultaneous accesses to 0x7faf490331c8, but modification requires exclusive access
I have defined a model like this
...ANSWER
Answered 2021-Jun-11 at 20:13Modify your @objc private func didTapButton(). Instead of
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install MVVM
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page