我有一个Xamarin.Forms应用程序。它使用的是freshmvvm框架,与我的问题无关。一个页面有几个条目:
<Entry Placeholder="Width" Text="{Binding TileWidth, Mode=TwoWay}" />
<Entry Placeholder="Height" Text="{Binding TileHeight, Mode=TwoWay}" />
这些条目绑定到ViewModel属性:
int _tileWidth;
public int TileWidth
{
get => _tileWidth;
set
{
_tileWidth = value;
RaisePropertyChanged(nameof(TileWidth));
}
}
int _tileHeight;
public int TileHeight
{
get => _tileHeight;
set
{
_tileHeight = value;
RaisePropertyChanged(nameof(TileHeight));
}
}
如果用户在条目中输入一些数字,则绑定将相应地设置属性。但是,如果在那之后用户从条目中删除了一个值,则绑定不会将相应的属性重置为0,这会导致各种问题。执行甚至不属于属性的设置部分。 (如果用户明确输入0,则绑定属性将按预期设置为0。)
也许有人知道我想念的是什么?谢谢。
答案 0 :(得分:1)
Entry.Text
在将string
绑定到int
时需要一个int
。
为了解决该问题,您可以:
string
属性(TileWidth,TileHeight)的绑定,请使用IValueConverter
。Width
属性。这不是一个好主意,因为我们正在谈论代表Height
和router.get('/:reportId', verify.verifyAdmin, async (req, res) => {
if (req.params.reportId === 'allAnswered') {
await reportService.getAllAnswered(req.query.userId, req.query.sessionId,
(response) => {
res.status(response.status).send(response);
})
} else {
await reportService.getReportById(req.params.reportId, (response) => {
res.status(response.status).send(response);
})
}
});
的属性。