我希望我的wpf窗口中的控件根据用户是查看还是编辑/插入数据来更改。例如,我想在查看时显示标签,但在编辑/插入时显示文本框(或组合框等)。用于编辑和查看数据的不同控件
我可以使用DataTemplates来做到这一点,还是必须为每个数据项有两个控件,并根据窗体所处的模式更改可见性?
如果DataTemplates将完成这项工作,任何人都可以指点我一些例子吗?
千恩万谢 mcalex
我希望我的wpf窗口中的控件根据用户是查看还是编辑/插入数据来更改。例如,我想在查看时显示标签,但在编辑/插入时显示文本框(或组合框等)。用于编辑和查看数据的不同控件
我可以使用DataTemplates来做到这一点,还是必须为每个数据项有两个控件,并根据窗体所处的模式更改可见性?
如果DataTemplates将完成这项工作,任何人都可以指点我一些例子吗?
千恩万谢 mcalex
在我看来,更好的方式来做到这一点是使用differrent数据模板控制,在情况下,当你总是需要一起使用它们。 无论如何你必须选择开关模板或控制机制。您可以使用DataTrigger (first answer)或ValueConverter
<StackPanel>
<Label Name="header" Content="Add New Employee" Style="{StaticResource Heading}"/>
<Separator></Separator>
<GroupBox Margin="0,10,0,0">
<Grid>
<Grid Margin="10,40,10,10" Name="AddEmployeeGrid">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Name="MarginColumn" Width="30"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
请添加如何解决用户问题的说明。此外,请阅读[如何回答](http://stackoverflow.com/help/how-to-answer) – Marusyk 2015-09-24 06:43:57
呀,结束了对文本框,标签等设置的ControlTemplate(不DataTemplate中),并结合这与依赖属性(只读),以应对可编辑状态。这指出了我的方向,所以我会将其标记为答案。 – mcalex 2012-09-24 06:52:09