Как это работает:
<Button title="make it vegan!"
style = {styles.vegan}
onPress = {()=> {
this.setState({isMeat : false})
this.setState({isVegetarian : false})
this.setState({isVegan : true})
}}
>
make it vegan!
</Button>
Было много глюков, которые я обнаружил:
Таким образом, я использовал следующий код:
private GridLength myHorizontalInputRegionSize = new GridLength(0, GridUnitType.Auto)
public GridLength HorizontalInputRegionSize
{
get
{
// If not yet set, get the starting value from the DataModel
if (myHorizontalInputRegionSize.IsAuto)
myHorizontalInputRegionSize = new GridLength(ConnectionTabDefaultUIOptions.HorizontalInputRegionSize, GridUnitType.Pixel);
return myHorizontalInputRegionSize;
}
set
{
myHorizontalInputRegionSize = value;
if (ConnectionTabDefaultUIOptions.HorizontalInputRegionSize != myHorizontalInputRegionSize.Value)
{
// Set the value in the DataModel
ConnectionTabDefaultUIOptions.HorizontalInputRegionSize = value.Value;
}
OnPropertyChanged("HorizontalInputRegionSize");
}
}
И XAML:
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="100" />
<RowDefinition Height="Auto" />
<RowDefinition Height="{Binding Path=HorizontalInputRegionSize,Mode=TwoWay}" MinHeight="50" />
</Grid.RowDefinitions>
Другая возможность, так как Вы подняли преобразование между GridLength
и int
, состоит в том, чтобы создать IValueConverter
и использовать его при привязке с Width
. IValueConverter
с также обрабатывают двухстороннюю привязку, потому что они имеют и ConvertTo()
и ConvertBack()
методы.