Cómo mostrar los atributos de clase para un objeto de clase inicializado en XAML -- wpf campo con xaml camp Relacionados El problema

How to display class attributes for a class object initialized in XAML


1
vote

problema

Español

Tengo un empleado de clase en un proyecto WPF:

  override func viewDidLoad() {     super.viewDidLoad()     navigationItem.title = "Countries"     navigationController?.navigationBar.prefersLargeTitles = true     navigationController?.navigationBar.barTintColor = UIColor.blu     tabBarController?.tabBar.tintColor = UIColor.white     view.backgroundColor = .white } 3  

y estoy creando una instancia de IT override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "Countries" navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationBar.barTintColor = UIColor.blu tabBarController?.tabBar.tintColor = UIColor.white view.backgroundColor = .white } 4 en mi archivo XAML:

  override func viewDidLoad() {     super.viewDidLoad()     navigationItem.title = "Countries"     navigationController?.navigationBar.prefersLargeTitles = true     navigationController?.navigationBar.barTintColor = UIColor.blu     tabBarController?.tabBar.tintColor = UIColor.white     view.backgroundColor = .white } 5  

Sin embargo, esto solo muestra el tipo de datos de override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "Countries" navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationBar.barTintColor = UIColor.blu tabBarController?.tabBar.tintColor = UIColor.white view.backgroundColor = .white } 6 I.E. override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "Countries" navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationBar.barTintColor = UIColor.blu tabBarController?.tabBar.tintColor = UIColor.white view.backgroundColor = .white } 7 . ¿Cómo muestro la identificación y el nombre de override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "Countries" navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationBar.barTintColor = UIColor.blu tabBarController?.tabBar.tintColor = UIColor.white view.backgroundColor = .white } 8

Original en ingles

I have a class Employee in a WPF Project:

class Employee {     public int ID { get; set; }     public string Name { get; set; } } 

And I am creating an instance of it emp2 in my XAML file:

<Window x:Class="WpfApplication1.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"         xmlns:local="clr-namespace:WpfApplication1"         Title="MainWindow" Height="350" Width="525">     <Window.Resources>         <local:Employee x:Key="emp2" ID="20" Name="Second Employee "></local:Employee>     </Window.Resources>     <StackPanel>                 <Label x:Name="lblEmpInfo2" FontSize="18" Margin="20" Content="{StaticResource emp2}"></Label>     </StackPanel> </Window> 

However this only displays the datatype of emp2 i.e. WpfApplication1.Employee. How do I display the ID and Name of emp2

     
       
       

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

WPF Utiliza el concepto de DataTemplates para darle la posibilidad de decidir cómo se deben presentar los objetos de los datos. Por lo tanto, podría definir un DataTemplate para el código Employee y luego use un ContentControl que utiliza la instancia del Employee Clase como su Math.PI / 1800 . El Math.PI / 1801111 podría contener controles para mostrar los valores.

  Math.PI / 1802  
 

WPF uses the concept of DataTemplates to give you the possibility to decide how data objects should be presented. Therefore you could define a DataTemplate for the class Employee and then use a ContentControl which uses the instance of the Employee class as its Content. The DataTemplate could contain controls to show the values.

<Window.Resources>     <local:Employee x:Key="emp2" ID="20" Name="Second Employee "></local:Employee>     <DataTemplate DataType={x:Type local:Employee}">         <StackPanel>             <TextBlock Text={Binding ID} />             <TextBlock Text={Binding Name} />         </StackPanel>     </DataTemplate> </Window.Resources> <StackPanel>     <ContentControl Content="{StaticResource emp2}" /> </StackPanel> 
 
 
 
 
2
 
vote

Me gusta esto:

  Math.PI / 1803  

o implementar el método Math.PI / 180414 METHICE DEL Math.PI / 1805 CLASE

  Math.PI / 1806  
 

Like this:

<Label x:Name="lblEmpInfo2" FontSize="18" Margin="20" Content="{Binding Path=Name, Source={StaticResource emp2}}"></Label> 

Or implement the ToString method override of the Employee class

public override string ToString() {     return string.Format("{0} {1}", Id, Name); } 
 
 
1
 
vote

Su vinculación es solo un poco desactivado:

  Math.PI / 1807  
 

Your binding's just a wee bit off:

<Label x:Name="lblEmpInfo2" FontSize="18" Margin="20" Content="{Binding Source={StaticResource emp2}, Path=ID}"></Label> 
 
 
0
 
vote

Tienes múltiples opciones:

  1. USE DataTemplates (respuesta de Matthiasg)

  2. Rápido y sucio: implementar TOSTRING () en Empleado de Clase, simple pero no muy flexible.

  3. Utilice StaticReReOurce como fuente de unión:

      Math.PI / 1808  
 

You have multiple options:

  1. Use DataTemplates (MatthiasG's answer)

  2. Quick and dirty: Implement ToString() in class Employee, simple but not very flexible.

  3. Use StaticResource as Binding Source:

    <StackPanel>   <Label Content="{Binding ID, Source={StaticResource emp2}}"></Label>   <Label Content="{Binding Name, Source={StaticResource emp2}}"></Label> </StackPanel> 
 
 

Relacionados problema

0  DataGrid se comportan anormalmente cuando los artículos son muy grandes  ( Datagrid behaving abnormally when itemsource is very large ) 
Estoy viendo un comportamiento anormal en DataGrid cuando la fuente de elemento es una lista muy grande (& gt; 4000), como las columnas están desapareciendo m...

0  ListView ScrollBar desordena mi diseño  ( Listview scrollbar messes up my layout ) 
Tengo un cuadro de lista de WPF que normalmente muestra 4 o 5 artículos. Para mi solicitud, eso significa que casi nunca tengo que mostrar una barra de despla...

18  WPF Designer "No se pudo crear una instancia de tipo"  ( Wpf designer could not create an instance of type ) 
En mi UI XAML, estoy heriendo esencialmente de una clase "Baseview" que contiene funcionalidad común a varias formas, sin embargo, esto está impidiendo que el...

3  Error de Grido de WPF SharedSize  ( Wpf grid sharedsizegroup error ) 
Si ejecuta este código y haga clic en la pestaña 2 y luego vuelva a encender la pestaña 1, la aplicación se vuelve loco y comienza a rebotar los anchos de la ...

2  VS2010 no puede encontrar Tipo ControlTemplate Aunque System.Windows se hace referencia  ( Vs2010 cannot find type controltemplate even though system windows is referenced ) 
Estoy tratando de aprender Silverlight aquí, creando una plantilla de control personalizada, sin embargo, VS2010 se niega a reconocer el ControlTemplate E...

5  Controlando el guión gráfico de USERCONTROL desde la ventana principal en WPF usando solo XAML  ( Controlling a usercontrols storyboard from the parent window in wpf using only ) 
He creado una aplicación de prueba muy simple para tratar de resolver este problema que me describe un compañero de trabajo. Pudo desencadenarlo en C #, pero ...

1  VS2008 XAML Designer Exception "Clave no puede ser nulo" cuando se usa los estilos predeterminados de un Resourcestionary  ( Vs2008 xaml designer exception key cannot be null when using default styles fr ) 
Estoy usando un elemento compartido para definir los estilos predeterminados y tener conflictos importantes con el Diseñador XAML en Visual Studio 2008. La t...

2  ¿Cómo puedo aplicar un GRADIENTBRUSH a múltiples objetos consecutivos en XAML?  ( How can i apply a gradientbrush to multiple consecutive objects in xaml ) 
Tengo un bloque de texto y una línea que se sienta uno junto al otro en su propio Packpanel exclusivo. Necesito difundir mi LineArgradientBrush a través de ...

0  HierarchicalDataTemplate y TreeView error de compilación vinculante  ( Hierarchicaldatatemplate and treeview binding compilation error ) 
Me han puesto en marcha un control de usuario y poner un control TreeView en eso. El archivo XAML se ve como sigue. Estoy utilizando un HierarchicalDataTempla...

0  Borde de validación del cuadro de texto  ( Textbox validation border ) 
Actualmente tengo el siguiente table-layout:fixed1 , lo que significa una entrada no válida, alrededor de TextBox es en una aplicación. Simplemente no me...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos