Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 8 如何在Windows Phone 8中从数据绑定设置样式staticresource_Windows Phone 8 - Fatal编程技术网

Windows phone 8 如何在Windows Phone 8中从数据绑定设置样式staticresource

Windows phone 8 如何在Windows Phone 8中从数据绑定设置样式staticresource,windows-phone-8,Windows Phone 8,如何从数据绑定中动态设置style staticresource 我正在使用下面的代码来更改每个网格的样式 <Grid HorizontalAlignment="Left" Width="453" Background="{StaticResource {Binding mystatus}}" > 整个是 <phone:LongListSelector x:Name="MainLongListSelector" Margin="5,5" ItemsSource="{B

如何从数据绑定中动态设置style staticresource

我正在使用下面的代码来更改每个网格的样式

 <Grid HorizontalAlignment="Left" Width="453" Background="{StaticResource {Binding mystatus}}"  >

整个是

<phone:LongListSelector x:Name="MainLongListSelector" Margin="5,5" ItemsSource="{Binding TaskList}" SelectionChanged="MainLongListSelector_SelectionChanged" Foreground="Black" Height="654">
                <phone:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <Border Style="{StaticResource bordercss}" >
                            <Grid HorizontalAlignment="Left" Width="453" UseOptimizedManipulationRouting="True" Background="{StaticResource {Binding mystatus}}"  >
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition/>
                                    <ColumnDefinition Width="5*"/>
                                    <ColumnDefinition Width="6*" />
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition></RowDefinition>
                                    <RowDefinition></RowDefinition>
                                    <RowDefinition></RowDefinition>
                                    <RowDefinition></RowDefinition>
                                    <RowDefinition></RowDefinition>
                                </Grid.RowDefinitions>
                                <TextBlock Grid.Row="0" Grid.Column="0" Margin="5" Text="{Binding no}" />
                                <StackPanel Orientation="Vertical" Grid.Row="0" Grid.Column="1" >
                                   <TextBlock   Text="{Binding title}" Style="{StaticResource textbold}" Margin="5,0" />
                                    <TextBlock   Text="{Binding csoId}" Style="{StaticResource btbx}" Margin="5,0,5,5" HorizontalAlignment="Left" />

                                </StackPanel>

                                <Image  HorizontalAlignment="Right" Grid.Row="0" Grid.Column="2"  Source="{Binding imageurl}" Margin="5" Height="25" />

                                <Image HorizontalAlignment="Left"   Grid.Row="1" Grid.Column="0"  Source="/Assets/client_icon.png" Margin="5,5,0,5" Width="23"/>
                                <TextBlock  Grid.Row="1" Grid.Column="1" Text="{Binding clientname}" Style="{StaticResource textsimple}"  />

                                <Image  HorizontalAlignment="Left" Grid.Row="2" Grid.Column="0"  Source="/Assets/contact_icon.png" Margin="5,5,0,5" Width="17"/>
                                <TextBlock  Grid.Row="2" Grid.Column="1" Text="{Binding customercontact}" Style="{StaticResource textsimple}"   />

                                <Image HorizontalAlignment="Left" Grid.Row="3" Grid.Column="0"  Source="/Assets/address_icon.png" Margin="5,5,0,5" Width="20"/>
                                <TextBlock  Grid.Row="3" Grid.Column="1" Text="{Binding address}" Style="{StaticResource textsimple}"   />

                                <StackPanel Grid.Row="4" Grid.ColumnSpan="2" Grid.Column="0" Style="{StaticResource mainstp}">
                                    <TextBlock Text="{Binding mydate}" Style="{StaticResource btbx}" />
                                    <TextBlock Text="{Binding mytime}" Style="{StaticResource btbx}" />
                                </StackPanel>

                                <StackPanel Grid.Row="4" Grid.ColumnSpan="2" Grid.Column="2" Style="{StaticResource mainstp}">
                                    <TextBlock Text="status" Style="{StaticResource btbx}" />
                                    <TextBlock Text="{Binding mystatus}" Style="{StaticResource btbx}" Foreground="Blue"/>
                                </StackPanel>
                                <!--<Button Grid.Row="4" Grid.ColumnSpan="2" VerticalAlignment="Center"  HorizontalAlignment="left" Grid.Column="0" Content="{Binding expdate}" Margin="-12,0,-12,-12" Background="#FFD6D6D6" Foreground="Black" Height="80"  />

                                <Button Grid.Row="4" Grid.Column="2" Content="Status" Margin="-10,0,-12,-12" Background="#FFD6D6D6" Foreground="Black" Padding="0,0,5,0" Height="80"  />-->

                            </Grid>

                        </Border>

                    </DataTemplate>
                </phone:LongListSelector.ItemTemplate>
            </phone:LongListSelector>

我终于找到了解决方案,把这个道具放到模型里

  private string _mystatus;
    public string mystatus
    {
        get
        {
            return _mystatus;
        }
        set
        {
            if (value != _mystatus)
            {
                _mystatus = value;
                NotifyPropertyChanged("mystatus");
                NotifyPropertyChanged("gridbgc");
                NotifyPropertyChanged("buttonfgc");
            }
        }
    }
    public string gridbgc
    {
        get
        {
            switch (mystatus)
            {
                case "Checked In":
                    return "#C8D7FF";
                case "Pending":
                    return "White";
                default:
                    return "White";
            }
        }
    }       
     public string buttonfgc
    {
        get
        {
            switch (mystatus)
            {
                case "Completed":
                    return "#6FCE2A";  
                case "Pending":
                    return "C03F40";
                default:
                    return "#6691EB";
            }
        }
    }
您可以通过“绑定DynamicCall Forecolor”来实现这一点

钮扣


我终于找到了解决方案,把这个道具放到模型里

  private string _mystatus;
    public string mystatus
    {
        get
        {
            return _mystatus;
        }
        set
        {
            if (value != _mystatus)
            {
                _mystatus = value;
                NotifyPropertyChanged("mystatus");
                NotifyPropertyChanged("gridbgc");
                NotifyPropertyChanged("buttonfgc");
            }
        }
    }
    public string gridbgc
    {
        get
        {
            switch (mystatus)
            {
                case "Checked In":
                    return "#C8D7FF";
                case "Pending":
                    return "White";
                default:
                    return "White";
            }
        }
    }       
     public string buttonfgc
    {
        get
        {
            switch (mystatus)
            {
                case "Completed":
                    return "#6FCE2A";  
                case "Pending":
                    return "C03F40";
                default:
                    return "#6691EB";
            }
        }
    }
您可以通过“绑定DynamicCall Forecolor”来实现这一点

钮扣



您不应调用NotifyPropertyChanged(“gridbgc”)NotifyPropertyChanged(“buttonfgc”),因为您没有对其进行更新,这与MVVM不符strusture@techloverr那么,根据mvvm的做法是什么呢?您不应该调用NotifyPropertyChanged(“gridbgc”)NotifyPropertyChanged(“buttonfgc”)因为您没有更新它,所以这与MVVM不一致strusture@techloverr那么,根据MVVM做什么呢