WPF中的右数据绑定

时间:2010-06-27 19:18:29

标签: wpf data-binding

我如何制作这样的用户界面:
1)包含项目的ListBox 2)有关所选项目的详细信息 3)当您更改详细信息中的任何项目时,列表中的所选项目将变为粗体 ...
4)...直到您按“保存”按钮,所有更改都将转到数据库。

例如,对于Binding to the list我使用Object with String Name属性,我想在按“Save”后看到这个属性的更改。

当我将UpdateCommand绑定到SaveButton Command属性时,主要的麻烦是调用ListBox的强制刷新。

1 个答案:

答案 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

即可