我如何制作这样的用户界面:
1)包含项目的ListBox
2)有关所选项目的详细信息
3)当您更改详细信息中的任何项目时,列表中的所选项目将变为粗体 ...
4)...直到您按“保存”按钮,所有更改都将转到数据库。
例如,对于Binding to the list我使用Object with String Name属性,我想在按“Save”后看到这个属性的更改。
当我将UpdateCommand绑定到SaveButton Command属性时,主要的麻烦是调用ListBox的强制刷新。
答案 0 :(得分:0)
您可以使用DataTrigger。将属性添加到项目视图模型中,名为Dirty。编辑项目时将其设置为true。当Dirty的值为true时,datatrigger会将fontweight设置为粗体。
<Window.Resources>
<Style TargetType="{x:Type TextBlock}" x:Key="AStyle">
<Style.Triggers>
<DataTrigger
Binding="{Binding Path=Dirty}"
Value="True">
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
</Style.Triggers>
</Style>
<DataTemplate x:Key="ATemplate">
<StackPanel>
<TextBlock Text="{Binding Name}" Style="{StaticResource AStyle}" />
</StackPanel>
</DataTemplate>
</Window.Resources>
然后只需将ItemTemplate设置为ATemplate
即可