Comments (4)
Thank you so much guys!
It's working when I just create a property that call the FindControl method.
And yes I've seen that there is Avalonia.NameGenerator package, and I was wanting to use it afterwards (but because it was not working with the FindControl I didn't check with the NameGenerator package).
Wasn't knowing that calling a method right here could break everything.
Thank you again! I close this.
from reactiveui.validation.
this.BindValidation(ViewModel, viewModel => viewModel.Username, view => view.FindControl<TextBlock>("UsernameError").Text).DisposeWith(disposables);
You can't do complex methods in the expression. You have FindControl. Just point towards a property only.
from reactiveui.validation.
E.g. if you modify your ConnectView
as such:
public partial class ConnectView : ReactiveUserControl<ConnectViewModel> {
public ConnectView() {
InitializeComponent();
this.WhenActivated(disposables => {
// Note the change in the third argument passed to BindValidation ⬇️
this.BindValidation(ViewModel, vm => vm.Username, v => v.UsernameError.Text)
.DisposeWith(disposables);
});
}
private TextBlock UsernameError => this.FindControl<TextBlock>("UsernameError");
private void InitializeComponent() {
AvaloniaXamlLoader.Load(this);
}
}
Your example will work, as this change makes the view expression understandable to ReactiveUI.Validation
. See https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expression?view=net-5.0 and https://www.reactiveui.net/docs/handbook/data-binding/#types-of-bindings for more info regarding expressions and their role in ReactiveUI code-behind bindings.
A general recommendation is to always declare references to Avalonia controls as such:
private TextBlock UsernameError => this.FindControl<TextBlock>("UsernameError");
And the good news is that there's a library called Avalonia.NameGenerator that will generate such references automatically. See documentation and generated code examples for more info. Don't forget to remove the InitializeComponent
method and to use the method generated by Avalonia.NameGenerator btw.
from reactiveui.validation.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from reactiveui.validation.
Related Issues (20)
- feature: Add Xamarin.Android Sample App HOT 2
- feature: Make `ValidationText` immutable, and add `Empty` property. HOT 2
- [BUG] NullReferenceException when using `ReactiveValidationObject` HOT 1
- [BUG] Build failure for uap10.0.17763 target HOT 3
- Make Add and Clear operations immutable. HOT 3
- feature: Add ValidationRule extensions method overloads to accept any object implementing IValidationState HOT 1
- bug: Make nullability warnings errors HOT 2
- [Question] Correct data validation with collection HOT 3
- WPF ValidationRule is not working when call ShowDialog HOT 2
- [Question] How to use ReactiveValidationObject and INotifyDataErrorInfo in WPF HOT 6
- WPF ValidationRule is not working when ShowDialog window HOT 2
- feature: Add a MAUI app to samples HOT 2
- [BUG] readme says to use ValidationRule on ReactiveValidationObject but it doesn't exist HOT 5
- [Question] Initial List Validation / Getting IsValid HOT 1
- feature: Bind validation to non-string view properties
- [Bug]: ReactiveValidationObject doesnt work with latest DynamicData version HOT 3
- feature : Multiple validation context support
- [Bug]: HasErrors is incorrect when performing a side effect from WhenAnyPropertyChanged
- Dependency Dashboard
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactiveui.validation.