我有一个执行命令的按钮,并将文本框的内容作为命令参数传递。作为Button单击/命令执行过程的一部分,我想清除文本框。 文本框文本绑定到列表视图的选定项目 - 因此我不相信我可以使用绑定属性来操作文本框内容。 实现清算的最佳方式是什么?
这是文本框的XAML:
<TextBox x:Name="tbEditOption"
Grid.Row="3"
Grid.Column="1"
Height="25"
Background="White"
Text="{Binding ElementName=lvOptions,
Path=SelectedItem.OptionText}"/>
按钮:
<Button x:Name="btnAdd"
Margin="0 5"
Width="70"
Height="30"
Content="Add"
Command="{x:Static cmd:CustomCommands.AddOption}">
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource MultiParameterConverter}">
<Binding ElementName="cbFilter" Path="SelectedIndex"/>
<Binding ElementName="tbEditOption" Path="Text"/>
</MultiBinding>
</Button.CommandParameter>
</Button>
最后是我命令的代码:
public static RoutedUICommand AddOption
{
get { return _addOption; }
}
public static void AddOption_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
SetupViewModel vm = ((Control)e.OriginalSource).DataContext as SetupViewModel;
var values = (object[])e.Parameter;
e.CanExecute = ((int)values[0] >= 0 && !string.IsNullOrEmpty(values[1].ToString()));
}
public static void AddOption_Executed(object sender, ExecutedRoutedEventArgs e)
{
SetupViewModel vm = ((Control)e.OriginalSource).DataContext as SetupViewModel;
vm.AddOption(e.Parameter);
}
答案 0 :(得分:0)
this.tbEditOption.Text = String.empty;
但视图中无法访问 View 对象。
此外,由于您正在更改源,这将破坏绑定。
答案 1 :(得分:0)
从列表视图(':foo' => ':bar'
)取消选中所选项会使SelectedItem = null
为空,因为Text
已绑定到Text
。
然而,这可能会产生副作用。