Προς το περιεχόμενο

C#, XAML, Bind σε label το αποτέλεσμα μιας συνάρτησης. Γινεται;


macabre_sunsets

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω μια συνάρτηση που μου επιστρέφει ένα string. Μπορεί να γίνει bind με ένα label ώστε να βλέπω το αποτέλεσμα?

Θέλω να κάνω κάτι σαν το ακόλουθο:

><Label Content="{Binding ...GetText(text)...}" />

Επίσης θέλω το αποτέλεσμα να φαίνεται κατά την σχεδίαση του Interface.

 

Εν μέρη πέτυχα αυτό που θέλω με το:

><Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Text}" />

αλλά α) δεν εμφανίζεται το κείμενο στον designer παρα μόνο όταν εκτελώ το πρόγραμμα και β) δεν μπορώ να δώσω παράμετρο ώστε κάθε φορά να μου επιστρέφει διαφορετικό κείμενο.

Καμια ιδέα?

Δημοσ.

Έχω μια συνάρτηση που μου επιστρέφει ένα string. Μπορεί να γίνει bind με ένα label ώστε να βλέπω το αποτέλεσμα?

Θέλω να κάνω κάτι σαν το ακόλουθο:

><Label Content="{Binding ...GetText(text)...}" />

Επίσης θέλω το αποτέλεσμα να φαίνεται κατά την σχεδίαση του Interface.

 

Εν μέρη πέτυχα αυτό που θέλω με το:

><Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Text}" />

αλλά α) δεν εμφανίζεται το κείμενο στον designer παρα μόνο όταν εκτελώ το πρόγραμμα και β) δεν μπορώ να δώσω παράμετρο ώστε κάθε φορά να μου επιστρέφει διαφορετικό κείμενο.

Καμια ιδέα?

Δημοσ.
Έχω μια συνάρτηση που μου επιστρέφει ένα string. Μπορεί να γίνει bind με ένα label ώστε να βλέπω το αποτέλεσμα?

Θέλω να κάνω κάτι σαν το ακόλουθο:

><Label Content="{Binding ...GetText(text)...}" />

Επίσης θέλω το αποτέλεσμα να φαίνεται κατά την σχεδίαση του Interface.

 

Εν μέρη πέτυχα αυτό που θέλω με το:

><Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Text}" />

αλλά α) δεν εμφανίζεται το κείμενο στον designer παρα μόνο όταν εκτελώ το πρόγραμμα και β) δεν μπορώ να δώσω παράμετρο ώστε κάθε φορά να μου επιστρέφει διαφορετικό κείμενο.

Καμια ιδέα?

 

Χρησιμοποίησε textblock αν είναι μόνο για string, αλλά μην περιμένεις να σου δίνει την παράμετρο όταν σχεδιάζεις. Λογικό είναι αφού ο κώδικας δεν εκτελείτε.

 

Η label στην XAML είναι πιο βαριά και χρησιμοποιείτε για την παρουσίαση διάφορων αντικειμένων που δεν είναι απαραίτητα strings. (π.χ. γραφικά).

 

Επίσης δεν αναφέρεις πως θες να του δώσεις την παράμετρο και από που.

Μπορείς να το κάνεις bind με άλλο control, μπορείς σε κλάση και μπορείς από τον κώδικα με event.

Δημοσ.
Έχω μια συνάρτηση που μου επιστρέφει ένα string. Μπορεί να γίνει bind με ένα label ώστε να βλέπω το αποτέλεσμα?

Θέλω να κάνω κάτι σαν το ακόλουθο:

><Label Content="{Binding ...GetText(text)...}" />

Επίσης θέλω το αποτέλεσμα να φαίνεται κατά την σχεδίαση του Interface.

 

Εν μέρη πέτυχα αυτό που θέλω με το:

><Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Text}" />

αλλά α) δεν εμφανίζεται το κείμενο στον designer παρα μόνο όταν εκτελώ το πρόγραμμα και β) δεν μπορώ να δώσω παράμετρο ώστε κάθε φορά να μου επιστρέφει διαφορετικό κείμενο.

Καμια ιδέα?

 

Χρησιμοποίησε textblock αν είναι μόνο για string, αλλά μην περιμένεις να σου δίνει την παράμετρο όταν σχεδιάζεις. Λογικό είναι αφού ο κώδικας δεν εκτελείτε.

 

Η label στην XAML είναι πιο βαριά και χρησιμοποιείτε για την παρουσίαση διάφορων αντικειμένων που δεν είναι απαραίτητα strings. (π.χ. γραφικά).

 

Επίσης δεν αναφέρεις πως θες να του δώσεις την παράμετρο και από που.

Μπορείς να το κάνεις bind με άλλο control, μπορείς σε κλάση και μπορείς από τον κώδικα με event.

Δημοσ.

Δεν το ήξερα αυτό τα για textblock και τα label. Άντε να τα γυρνάω όλα τώρα :/

 

Βασικά αυτό που θέλω να κάνω είναι ένα multilingual πρόγραμμα που τραβάει τα μεταφρασμένα κείμενα από XML. Όταν όμως δεν υπάρχει ή δεν το βρίσκει τότε τα διαβάζει από αλλού. Για αυτό έχω μια συνάρτηση που ελέγχει αν υπάρχει το XML και το εκάστοτε string και αν υπάρχει επιστρέφει την τιμή από εκεί. Είναι λίγο δύσκολο να δουλεύεις σε "κενο" designer για αυτό έψαχνα αν υπήρχε λύση να βλέπω τα "δεδομένα".

 

Η παράμετρος που θέλω να του δίνω είναι ένα enum.

Εν μέρη πέτυχα αυτό που θέλω με την χρήση converter, αλλά (αφού ξεπέρασα το γεγονός ότι δεν θα βλέπω κείμενο) δεν ξέρω πώς μπορώ να του δώσω μια συγκεκριμένη τιμή από το enum και δίνω string.

>Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Value, Converter={StaticResource converter}, ConverterParameter=Παράμετρος_σαν_string}"

Δημοσ.

Δεν το ήξερα αυτό τα για textblock και τα label. Άντε να τα γυρνάω όλα τώρα :/

 

Βασικά αυτό που θέλω να κάνω είναι ένα multilingual πρόγραμμα που τραβάει τα μεταφρασμένα κείμενα από XML. Όταν όμως δεν υπάρχει ή δεν το βρίσκει τότε τα διαβάζει από αλλού. Για αυτό έχω μια συνάρτηση που ελέγχει αν υπάρχει το XML και το εκάστοτε string και αν υπάρχει επιστρέφει την τιμή από εκεί. Είναι λίγο δύσκολο να δουλεύεις σε "κενο" designer για αυτό έψαχνα αν υπήρχε λύση να βλέπω τα "δεδομένα".

 

Η παράμετρος που θέλω να του δίνω είναι ένα enum.

Εν μέρη πέτυχα αυτό που θέλω με την χρήση converter, αλλά (αφού ξεπέρασα το γεγονός ότι δεν θα βλέπω κείμενο) δεν ξέρω πώς μπορώ να του δώσω μια συγκεκριμένη τιμή από το enum και δίνω string.

>Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=Value, Converter={StaticResource converter}, ConverterParameter=Παράμετρος_σαν_string}"

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...