2010-08-31 70 views
0

我已经将对象绑定到WPF控件。如何使用xaml单击编辑按钮来切换对象属性“IsEditMode”,并在之后不使用代码?这里是XAML的示例代码 -更改WPF中按钮单击的绑定对象属性

<Label Style="{StaticResource TitleLabel}" 
     Content="{Binding Path=GroupTitle}" 
     Visibility="{Binding Path=IsEditMode, Converter={StaticResource boolToVis}}" 
     HorizontalAlignment="Left" /> 

<Button Content="Edit" HorizontalAlignment="Right" VerticalAlignment="Center"> 
    <Button.Triggers> 
     <EventTrigger RoutedEvent="Button.Click"> 
      <!--Toggle the bindedobject.IsEditMode property of click of button--> 
     </EventTrigger> 
    </Button.Triggers> 
</Button> 

回答

1

只使用XAML和落后

没有代码,我不认为这是可能的,没有C#(或VB)代码在所有的,但你可以在没有代码隐藏的情况下使用MVVM pattern。所以,你会 C#代码,只是没有在代码隐藏...

如果你走这条路,你需要从您的视图模型暴露的命令:

private DelegateCommand _enterEditModeCommand; 
    public ICommand EnterEditModeCommand 
    { 
     get 
     { 
      if (_enterEditModeCommand== null) 
      { 
       _enterEditModeCommand= new DelegateCommand(EnterEditMode); 
      } 
      return _enterEditModeCommand; 
     } 
    } 

    private void EnterEditMode() 
    { 
     IsEditMode = true; 
    } 

并结合您的按钮该命令:

<Button Content="Edit" Command="{Binding EnterEditModeCommand}" 
     HorizontalAlignment="Right" VerticalAlignment="Center"> 
+0

我们可以隐藏按钮单击上的标签吗? – 2010-08-31 12:46:21

+0

是的,您只需将标签可见性绑定到VM的属性,然后在EnterEditMode中更新该属性 – 2010-08-31 15:33:52

0

还有那些已经在框架控制:

<Label Style="{StaticResource TitleLabel}" 
     Content="{Binding Path=GroupTitle}" 
     Visibility="{Binding Path=IsEditMode, Converter={StaticResource boolToVis}}" 
     HorizontalAlignment="Left" /> 

<ToggleButton Content="Edit" HorizontalAlignment="Right" VerticalAlignment="Center" 
     IsChecked="{Binding IsEditMode}"/>