首页 > 解决方案 > WPF MVVM 中的颜色变化

问题描述

我对 wpf 和 MVVM 完全陌生。我创建了一个代码,它将列表视图中的值绑定到文本框和反之亦然。列表视图的数据是从数据库发送的。现在我想在更新文本框中的文本时更改列表视图中行的颜色。我也有两个具有相同列表视图的复选框的类似连接。你能帮忙吗,因为我找不到正确的解决方案。下面是我的代码:

<UserControl>
    

<Grid HorizontalAlignment="Center" Margin="20,20,20,0">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" MinWidth="236"></ColumnDefinition>
        <ColumnDefinition Width="Auto" MinWidth="494"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>

    </Grid.RowDefinitions>

    <Label Grid.Row="0" Grid.Column="0" Content="Mitarbeiter Status" Margin="0,0,0,10"/>
    <TextBox  Grid.Row="0" Grid.Column="1"  Width="261" HorizontalAlignment="Left"  HorizontalContentAlignment="Center" Text="{Binding ElementName=EmployeeStatusListView, Path=SelectedItem.Status, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged }"/>
    <CheckBox Grid.Row="1" Grid.Column="0" Content="IsAdmin" Margin="0,10,0,10"  IsChecked="{Binding ElementName =EmployeeStatusListView, Path=SelectedItem.IsAdmin,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True }"/>
    <CheckBox Grid.Row="1" Grid.Column="1" Content="IsMandatory" Margin="0,10,0,10" IsChecked="{Binding ElementName =EmployeeStatusListView, Path=SelectedItem.IsMandatory,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"/>


    <StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="0,10,0,10" >
        <Button Width="100" Content="Hinzufugen" Command="{Binding Path=AddCommand}" CommandParameter="{Binding ElementName=EmployeeStatusListView ,Path=SelectedItem}" Margin="100,10,30,0"/>
        <Button  Width="90" Content="Update"  Command="{Binding Path=UpdateCommand}" CommandParameter="{Binding ElementName=EmployeeStatusListView,  Path=SelectedItem}" Height="30" Margin="20,10,30,0" />
        <Button  Width="90" Content="Löschen" Command="{Binding Path=DeleteCommand}" CommandParameter="{Binding ElementName=EmployeeStatusListView,  Path=SelectedItem}"  Height="30" Margin="20,10,30,0" />
    </StackPanel>
    
<ListView SelectedItem="EmployeeStatusSelect" SelectedIndex="0" Grid.Row="3" Grid.ColumnSpan="2"  Name="EmployeeStatusListView" ItemsSource="{Binding EmployeeStatusList}" RenderTransformOrigin="0.502,0.66" Margin="0,20,0,-19" >
        <ListView.View>
            <GridView>
                <GridViewColumn Header="ID" Width="120" DisplayMemberBinding="{Binding Id, Mode=TwoWay}"/>
                <GridViewColumn Header="Mitarbeiter Admin Nummer " Width="200" DisplayMemberBinding="{Binding IsAdmin}"/>
                <GridViewColumn Header="Mitarbeiter Status " Width="200" DisplayMemberBinding="{Binding Status, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                <GridViewColumn Header="Mandantory " Width="200" DisplayMemberBinding="{Binding IsMandatory, Mode=TwoWay}"/>
                
            </GridView>
            
        </ListView.View>
    </ListView>
</Grid>

标签: wpfmvvmwpf-controls

解决方案


推荐阅读