积极答复者
如何在XAML中初始化一个空字符串

问题
-
有如下代码使用ObjectDataProvider绑定到一个接受参数的方法:
<Window>
<Window.Resources>
<ObjectDataProvider x:Key="StudentServiceProvider"
ObjectType="{x:Type lib:StudentService}"
MethodName="QueryStudentsByName">
<ObjectDataProvider.MethodParameters>
<sys:String></sys:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<StackPanel>
<TextBox Name="tbNameKeyword"
Text="{Binding BindsDirectlyToSource=True,
Source={StaticResource StudentServiceProvider}, Path=MethodParameters[0],
UpdateSourceTrigger=Explicit}" />
<Button Content="Search Students" Click="DoSearchStudentsClick" />
<ListBox ItemsSource="{Binding Source={StaticResource StudentServiceProvider}}"/>
</StackPanel>
</Window>private void DoQueryStudentClick(object sender, RoutedEventArgs e)
{
tbNameKeyword.GetBindingExpression(TextBox.TextProperty).UpdateSource();
}现在的问题是在定义ObjectDataProvider的参数时
<ObjectDataProvider.MethodParameters>
<sys:String></sys:String>
</ObjectDataProvider.MethodParameters>
若不指定此string参数的值,运行时会抛出null reference的异常,我不希望为此string参数定义任何默认值,希望初始化为null或者string.Empty,请问如何在实现?我试过如下:
<ObjectDataProvider.MethodParameters>
<sys:String xml:space="preserve"> </sys:String>
</ObjectDataProvider.MethodParameters>貌似不起作用。
答案
-
<ObjectDataProvider.MethodParameters>
<x:StaticExtension Member="sys:String.Empty"/>
</ObjectDataProvider.MethodParameters>这样
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Lyman Ma 2011年8月4日 7:18
全部回复
-
你好,
你可以使用x:Static来引用String的静态成员Empty。
<x:StaticExtension Member="sys:String.Empty"/>
Min Zhu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
<ObjectDataProvider.MethodParameters>
<x:StaticExtension Member="sys:String.Empty"/>
</ObjectDataProvider.MethodParameters>这样
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Lyman Ma 2011年8月4日 7:18