Ho letto diverse domande sull'argomento, ma le risposte non funzionano per me. Ho il seguente enum che viene dichiarata in StlContainer.cs:Come assegnare l'enum globale come valore Tag in XAML?
public enum ToothVisualModelType
{
CoordinateSystemPivot = 0,
Tooth = 1,
Crown = 2,
Gums = 3
}
L'enumerazione viene dichiarata al di fuori della definizione della classe StlContainer che lo rende un enum globale. Voglio cedere i propri valori alla proprietà Tag di diversi controlli XAML, così ho cercato di fare in questo modo:
<xctk:ColorPicker Tag="{x:Static local:ToothVisualModelType.Tooth}"
Name="colorPickerTooth"
Width="110"
Grid.Column="1"
Grid.Row="3"
SelectedColorChanged="colorPickerTooth_SelectedColorChanged"
DisplayColorAndName="True"
Margin="0,0,10,5">
</xctk:ColorPicker>
Ma ottenuto l'errore:
Error 1 Unknown build error, 'Key cannot be null. Parameter name: key Line 234 Position 43.' D:\Visual Studio\Projects\Dental Viewer\Dental Viewer 1.2\Dental Viewer\MainWindow.xaml 234 43 Dental Viewer 1.2
ho provato a spostare l'enumerazione di MainWindow .xaml.cs, ho provato
Tag="{x:Static local:StlContainer+ToothVisualModelType.Tooth}"
e
Tag="{x:Static MyNamespace:ToothVisualModelType.Tooth}"
Ho provato ad assegnarlo a un tag su un controllo Label e ho ancora lo stesso errore. Cosa mi manca qui? Posso usare qualche tipo di binding per risolvere questo?
PS: quando si digita il valore e si arriva a Tag="{x:Static }"
il completamento automatico suggerisce solo il parametro Membro per completarlo come questo Tag="{x:Static Member=}"
se ciò è importante.
Come si definisce lo spazio dei nomi 'local' in XAML? È 'ToothVisualModelType' in quello spazio dei nomi? – dkozl
Non vedo niente di sbagliato nel tuo codice 'Tag =" {x: Static local: ToothVisualModelType.Tooth} "' .. Questo è assolutamente corretto ... –
@AmolBavannavar Questo è esattamente ciò con cui sto combattendo. Dovrebbe funzionare, ma non è così. E sì, tutto è nello stesso spazio dei nomi – mandarin