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
Version imprimable
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 ?
Salut,
je n'ai pas d'erreur chez moi :?
Peut-être que cette discussion pourra t'aider : http://social.msdn.microsoft.com/For...-c2b02d8b24af/
tu as l'erreur quand tu fait un tit bindingCitation:
je 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_NUMBERCode:
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 dictionnaireCode:
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 suivantCode:
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 afficheCode:
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 erreurCode:
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 erreurCode:
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:
1
2
3
4
5 <GridViewColumn Width="Auto"> <GridViewColumn.Header> <TextBlock Text=" " /> </GridViewColumn.Header> </GridViewColumn>
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 :D