2014-01-04 6 views
7

Я хочу установить свойство тега со значением int в xaml. Но определение int в ресурсах, а затем ссылаться на этот ресурс, поскольку привязка выглядит не идеальным способом для меня. Легче просто преобразовать значение string в int из кода. Итак, есть ли способ легко установить значение int в xaml?Есть ли простой способ указать значение int в xaml

ответ

8

Если не заинтересован в признании его в качестве ресурса, вы можете объявить его в линию примерно так:

<Button> 
     <Button.Tag> 
      <sys:Int32>5</sys:Int32> 
     </Button.Tag> 
    </Button> 
+0

К сожалению, слишком много писем тоже. Мне нужно установить тег для нескольких элементов, таких как 'Tag =" int: 0 ", Tag =" int: 1 "и т. Д. – Arteny

+0

Свойство' Tag' имеет тип 'object'. Даже если вы хотите получить к нему доступ из кода, вам нужно сделать кнопку typecast '(int). Tag'. Можете ли вы рассказать об использовании? –

+0

yes, but (int) button.Tag более простой, чем int.Parse ((string) button.Tag) :) ok, так как я понимаю, что использовать строковые значения для этого внешнего вида простейший существующий путь – Arteny

11

Пожалуйста, попробуйте это.

Добавить пространство имен XMLNS: SYS = "CLR-пространств имен: System; сборка = mscorlib" в XAML

<sys:Int16 x:Key="IntNo">1</sys:Int16> or 

<sys:Int32 x:Key="IntNo1" >1</sys:Int32> 

Примечание: Аналогично можно использовать для двойного значения также.

6
xmlns:sys="clr-namespace:System;assembly=mscorlib" 


<Grid> 
    <Grid.Resources> 
     <sys:Int32 x:Key="IntValue" >1</sys:Int32> 
    </Grid.Resources> 
    <Button x:Name="Button" Tag="{StaticResource IntValue}"></Button> 
</Grid> 

Прост достаточно? Вышеприведенный образец будет подходящим, если вы собираетесь использовать свое значение в нескольких местах. В противном случае:

<Button x:Name="Button" > 
     <Button.Tag> 
      <sys:Int32>1</sys:Int32> 
     </Button.Tag> 
    </Button> 
Смежные вопросы