2

我有一个简单的网格,我在其中将行高绑定到一个数组成员。但是如果用户输入错误,则内容可能会被清除,即数组索引变得无效。因此,我将 FallbackValue 设置为默认值。但这似乎不起作用。在绑定中,我使用了一个转换器,它将自定义类型转换为所需的 Double。但这不应该是问题的根源。

<RowDefinition Name="Row1" Height="{Binding Path=item[0].value, Converter={conv:ItemValueToRowHeight}, FallbackValue=20}"/>

调试输出显示 wpf 绑定系统仍然需要数组项,即使没有项:

System.Windows.Data Warning: 17 : Cannot get 'Item[]' value ...

有任何想法吗 ?

4

1 回答 1

0

评论

在以下情况下,绑定成功返回值:

The path to the binding source resolves successfully.

The value converter, if any, is able to convert the resulting value.

The resulting value is valid for the binding target (target) property.

http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue.aspx

让您的转换器返回 DependencyProperty.UnsetValue

于 2013-04-23T19:14:18.337 回答