bonjour je cherche comment faire ceci
<system:String x:Key="T_HEADER_NUMBER" ></system:String>
sans que ca plante puisqu'il n'existe pas de constructeur vide
bonjour je cherche comment faire ceci
<system:String x:Key="T_HEADER_NUMBER" ></system:String>
sans que ca plante puisqu'il n'existe pas de constructeur vide
Hum... bonne question
Tu as essayé en passant par String.Empty ?
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Salut,
je n'ai pas d'erreur chez moi
Peut-être que cette discussion pourra t'aider : http://social.msdn.microsoft.com/For...-c2b02d8b24af/
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
tu as l'erreur quand tu fait un tit bindingje n'ai pas d'erreur chez moi
Content="{DynamicResource T_HEADER_NUMBER}"
bon j'ai tente
<x:Static x:Key="T_HEADER_NUMBER" Member="system:String.Empty" />
<x:Static x:Key="T_HEADER_NUMBER" Member="System:String.Empty" />
et ca passe pas
etonnament quand je fais ca
j'ai bien un object string vide dans T_HEADER_NUMBER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <Window x:Class="test_empty_string.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib" Title="Window1" Height="300" Width="300"> <Window.Resources> <x:Static x:Key="T_HEADER_NUMBER" Member="system:String.Empty"/> </Window.Resources> <Grid> <Button Height="37" Margin="80,0,92,85" Name="button1" VerticalAlignment="Bottom" Click="button1_Click">Button</Button> <TextBox Text="{StaticResource T_HEADER_NUMBER}" Height="50" Width="100" HorizontalAlignment="Right" VerticalAlignment="Bottom"/> </Grid> </Window>
je vais creuser mon binding etait sur un header de listview ca vient sans doute de cela
en effet y'a un bleme
quand je rajoute cette chaine a un dictionnaire de resource ca deconne
si je met comme dans l'exemple ci dessus ca passe (en dehors de l'editeur waml qui rale a mort)
mais si je rajoute
dans app.xaml
et dans mon dictionnaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <Application x:Class="test_listview_string_a_null.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib" StartupUri="Window1.xaml"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Resources\Lang_En.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
avec le code de test suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib"> <x:Static x:Key="T_HEADER_NUMBER" Member="system:String.Empty"/> <system:String x:Key="T_HEADER_NUMBER0">alpha</system:String> </ResourceDictionary>
ca marche toujours dans la listbox mais plus dans le header (enfin il affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <Window x:Class="test_listview_string_a_null.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib" Title="Window1" Height="300" Width="300"> <Window.Resources> </Window.Resources> <Grid> <Button Height="37" Margin="80,0,92,85" Name="button1" VerticalAlignment="Bottom" Click="button1_Click">Button</Button> <TextBox Height="50" Width="100" HorizontalAlignment="Right" VerticalAlignment="Bottom"/> <ListView Margin="20,19,18,129" Name="listView1"> <ListView.View> <GridView AllowsColumnReorder="True" > <GridViewColumn Header="{DynamicResource T_HEADER_NUMBER0}" Width="Auto" /> <GridViewColumn Header="{DynamicResource T_HEADER_NUMBER}" Width="Auto" /> <GridViewColumn Header="Beta" Width="Auto" /> </GridView> </ListView.View> </ListView> </Grid> </Window>
system.window.markup.staticextension)
etonnant non ?
Et ça fait pareil si tu utilises un template pour le Header ?
Un template avec un TextBlock par exemple.
bon je tente le truc le plus simple
donc si je fais ca
ca me donne une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <GridViewColumn Width="Auto"> <GridViewColumn.Header> <TextBlock Text="{DynamicResource T_HEADER_NUMBER}" /> </GridViewColumn.Header> </GridViewColumn>
d'ailleurs ce qui est amusant c'est que sur la fenetre de vs ca marche, et ca deconne en execution
avec ca
j'ai la meme erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <DataTemplate x:Key="HeaderTemplate"> <TextBox Text="{DynamicResource T_HEADER_NUMBER}" /> </DataTemplate> et <GridViewColumn Width="Auto" HeaderTemplate="{StaticResource HeaderTemplate}">
evidement je pourrais coller un converter, mais franchement je trouve pas ca super propre !!!
J'ai pas testé mais pkoi tu fais pas ca tout simplement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <GridViewColumn Width="Auto"> <GridViewColumn.Header> <TextBlock Text=" " /> </GridViewColumn.Header> </GridViewColumn>
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
j'utilise des dictionnaire de resource pour gerrer mes traductions
donc si je veux utiliser le meme binding pour l'ensemble des textes de mon application j'aimerais trouver une soltuion simple pour pouvoir utiliser
Text="{DynamicResource T_HEADER_NUMBER}"
deja mettre un converter ca me branche a peine
maintenant je pourrais coller un . dans le
<system:String x:Key="T_HEADER_NUMBER">.</system:String>
mais ca fait pas super propre
je pourrais aussi faire mon type du style
EmptyString qui renvoit dans le ToString un ""
avec
<local:EmptyString x:Key="T_HEADER_NUMBER" />
mais franchement je trouve ca moins sexy
mais bon je suis peut etre trop radical![]()
Partager