Cómo hacer referencia a una propiedad de la vista desde la plantilla de datos -- # campo con wpf campo con listview camp Relacionados El problema

How to reference a property of the view from the data template


1
vote

problema

Español

MI ListView tiene el <?php $host = "93.191.155.164"; //localhost: $host = "127.0.0.1"; $port = 4643; ?> <html> <head> <title>Client</title> </head> <body> <form method="post"> <input type="text" name="input" /> <input type="submit" name="btn" /> </form> <?php if(isset($_POST['btn'])){ if($_POST['input'] != ''){ $message = $_POST['input']; $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket "); socket_connect($socket, $host, $port) or die("Could not connect to server "); socket_write($socket, $message, strlen($message)) or die("Could not send data to server "); if (false == (@$result = socket_read($socket, 1024))) { echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($socket)) . " "; }else{ echo "Svar fra Server :".$result . " "; } socket_close($socket); } } ?> </body> </html> 9 :

  $image0  

¿Qué usan el siguiente $image1111 :

  $image2  

Quiero mostrar una sola imagen para todos los artículos, por lo que se creó una propiedad en $image3 clase:

  $image4  

e intenta hacer referencia a la plantilla:

  $image5  

pero obtén el error

SYSTEM.WINDOWS.DATA ERROR: 40: ERROR DE RUTA DE BUDINGEXPRESIÓN: La propiedad 'Iconsource' no se encuentra en 'objeto' '' contentpresenter ' (Nombre = '') '. BindingExpression: Path = Iconsource; Dataitem = 'contentpresenter' (nombre = ''); Elemento de destino es 'imagen' (Nombre = ''); La propiedad de destino es 'fuente' (tipo 'imageurce')

cuando intento escribir

  $image6  

entiendo

System.Windows.Data Error: 4: No se puede encontrar la fuente para la encuadernación con Referencia 'RelativSource Findancestor, Ancestortype = 'clientwpf.controls.tileview', AncestorleVel = '1' '. BindingExpression: Path = Iconsource; DataItem = NULL; El elemento objetivo es 'Imagen' (nombre = ''); La propiedad de destino es 'fuente' (tipo 'imageurce')

Claro, puedo intentar una imagen en el modelo de datos, pero no me gusta de esta manera por razones obvias.

Entonces, ¿cómo puedo hacer referencia $image7 propiedad del $image8 de mi plantilla? Gracias.

Original en ingles

My ListView has the custom View:

public class TileView : ViewBase {    public DataTemplate ItemTemplate { get; set; }     public ImageSource IconSource { get; set; } = new BitmapImage(new Uri("../Resources/umf.png", UriKind.Relative));     protected override object DefaultStyleKey => new ComponentResourceKey(GetType(), "TileView");    protected override object ItemContainerDefaultStyleKey => new ComponentResourceKey(GetType(), "TileViewItem"); } 

which use the next DataTemplate:

    <local:TileView>         <local:TileView.ItemTemplate>             <DataTemplate>                 <StackPanel>                     <Image                          Source="{Binding IconSource, RelativeSource={RelativeSource Mode=TemplatedParent}}"                         />                 </StackPanel>             </DataTemplate>         </local:TileView.ItemTemplate>     </local:TileView> 

I want to show a single image for all items, so I was created a property in View class:

public ImageSource IconSource { get; set; } =    new BitmapImage(new Uri("../Resources/umf.png", UriKind.Relative)); 

and try to reference it from a template:

 <Image Source="{Binding IconSource,      RelativeSource={RelativeSource Mode=TemplatedParent}}"/> 

but obtain the error

System.Windows.Data Error: 40 : BindingExpression path error: 'IconSource' property not found on 'object' ''ContentPresenter' (Name='')'. BindingExpression:Path=IconSource; DataItem='ContentPresenter' (Name=''); target element is 'Image' (Name=''); target property is 'Source' (type 'ImageSource')

When I try to write

Source="{Binding IconSource,    RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:TileView}}}" 

I get

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='ClientWPF.Controls.TileView', AncestorLevel='1''. BindingExpression:Path=IconSource; DataItem=null; target element is 'Image' (Name=''); target property is 'Source' (type 'ImageSource')

Sure, I can intent an image into data model, but I don't like this way by obvious reasons.

So how can I reference ItemSource property of the View from my template? Thanks.

        
   
   

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Una vista no tiene un ItemTemplate . Aplica un ControlTemplate al ListView . Dentro de este, podrías a una propiedad de vista así:

  {Binding Path=TemplatedParent.View.IconSource, RelativeSource={RelativeSource TemplatedParent}}   

Eso es lo que el ControlTemplate del código ItemTemplate5 .

Dentro del ItemTemplate de ListView En sí mismo, podría enlazar a una propiedad del View como este:

  {Binding View.IconSource, RelativeSource={RelativeSource AncestorType=ListView}}   
 

A view doesn't have an ItemTemplate. It applies a ControlTemplate to the ListView. Inside this one, you could to a property of view like this:

{Binding Path=TemplatedParent.View.IconSource, RelativeSource={RelativeSource TemplatedParent}} 

That's what the ControlTemplate of the built-in GridView does.

Inside the ItemTemplate of the ListView itself, you could bind to a property of the View like this:

{Binding View.IconSource, RelativeSource={RelativeSource AncestorType=ListView}} 
 
 

Relacionados problema

1  Recuperar múltiples filas de una fuente ODBC con una consulta de unión  ( Retrieve multiple rows from an odbc source with a union query ) 
Estoy recuperando múltiples filas en un control LISTVIEW desde una fuente ODBC. Para selecciones simples, parece funcionar bien con un atributo de declaración...

1  Ocultar listView encabezado programáticamente  ( Hide listview header programmatically ) 
Tengo un ListView como: Col1 col2 col3 1 a i 2 b II 3 C III Yo uso 2 botones. Cuando haga clic en el primer botón, el COL3 debe colapsar y debe ser visi...

1  Lista de AndroidView con color alternativo y en color de enfoque  ( Android listview with alternate color and on focus color ) 
Necesito establecer un color alternativo en las filas de la vista de lista, pero cuando hago eso, elimina / deshabilita el fondo amarillo de enfoque predeterm...

0  Error de SQLite al abrir una pestaña y cuando la base de datos está vacía Android  ( Sqlite error when opening a tab and when the database is empty android ) 
Tengo cuatro pestañas que la primera inserta datos en la base de datos, las otras 2 pestañas se encargan de mostrar los datos utilizando un cursor. Aquí está ...

0  Android ListView Pregunta: No se puede usar <ListView> </ ListView> en diseño XML?  ( Android listview questioncan not use listview listview in layout xml ) 
Intento escribir un XML como por debajo de XML, pero siempre obtendré una excepción. Eso "causado por: java.lang.unsupportedOfereException: AddView (Ver, Layo...

6  LISTIAL Vista de encuadernación con propiedad "isselected" de ListViewIdem  ( Listview binding with isselected property of listviewitem ) 
Tengo la siguiente clase public abstract class AbsTrinityEvent { public event IsSelected OnSelectedEvent; bool _IsSelected; ITrinityEve...

-1  Agregar columnas en ListView en C # .NET  ( Add columns in listview in c net ) 
¿Puedes decirme cómo agregar una columna en ListView Tengo una vista de lista llamada "_listavailable", Necesito agregar una columna llamada "Nombre", per...

1  Delphi ListView 'Stuck' en el evento del ratón  ( Delphi listview stuck in mouse event ) 
La situación es un poco difícil de explicar, haré mi mejor esfuerzo. Tengo un LISTVIEW, que tiene un menú de clic derecho. Uno de los elementos del menú abr...

0  Cómo agregar datos de un diccionario a un control de la vista de lista  ( How to add data from a dictionary to a list view control ) 
(es una continua para mi Pregunta . Ahora estoy teniendo un diccionario Dictionary<String, List<String>>MyDict = new Dictioanary<String, List<String>>(); ...

5  Cómo agregar datos de una lista <Lista <String >> a una vista de lista  ( How to add data from a listliststring to a list view ) 
Estoy teniendo una List<List<String>> mylist y que contiene { "A1","B1","C1" } { "A2","B2","C2" } { "A3","B3","C3" } Necesito agregar est...




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