Как может я перечислять раскрасить WPF с XAML?

В строке if eachenv=="DEV01" or "DEV02": всегда выполняется второе условие:

>>> if "DEV02":
...     print('hello')
... 
hello

Это происходит потому, что строка "DEV02" является объектом, поэтому будет оцениваться True.

@Lightness Races на орбите дали правильный способ написать это, если утверждение.

15
задан casperOne 22 May 2011 в 20:23
поделиться

2 ответа

Вот чистое решение XAML.

В Вашем разделе ресурсов, Вы использовали бы это:

<!-- Make sure this namespace is declared so that it's in scope below -->
.. xmlns:sys="clr-namespace:System;assembly=mscorlib" ..

<ObjectDataProvider MethodName="GetType" 
    ObjectType="{x:Type sys:Type}" x:Key="colorsTypeOdp">
    <ObjectDataProvider.MethodParameters>
        <sys:String>System.Windows.Media.Colors, PresentationCore,
            Version=3.0.0.0, Culture=neutral, 
            PublicKeyToken=31bf3856ad364e35</sys:String>
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ObjectDataProvider ObjectInstance="{StaticResource colorsTypeOdp}"  
    MethodName="GetProperties" x:Key="colorPropertiesOdp">
</ObjectDataProvider>

Или, как CodeNaked указывает , он может быть уменьшен до одного тега:

<ObjectDataProvider 
    ObjectInstance="{x:Type Colors}" 
    MethodName="GetProperties" 
    x:Key="colorPropertiesOdp" />

И затем поле комбинированного списка было бы похоже на это:

<ComboBox Name="comboBox1" 
    ItemsSource="{Binding Source={StaticResource colorPropertiesOdp}}"
    DisplayMemberPath="Name"
    SelectedValuePath="Name" />
33
ответ дан 1 December 2019 в 00:18
поделиться

Вот то, что я сделал в прошлом приложении ASP.net:

// populate colors drop down (will work with other kinds of list controls)
Type colors = typeof(System.Drawing.Color);
PropertyInfo[] colorInfo = colors.GetProperties(BindingFlags.Public |
    BindingFlags.Static);
foreach ( PropertyInfo info in colorInfo)
{
    ddlColor.Items.Add(info.Name);                
}

// Get the selected color
System.Drawing.Color selectedColor = 
    System.Drawing.Color.FromName(ddlColor.SelectedValue);
7
ответ дан 1 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: