styled FeatureDataForm doesn't work in ArcGIS API for MS 2.1 but works with 2.0

478
1
05-09-2011 06:44 AM
XiujuZhou
New Contributor III
I use MS Expression to style default FeatureDataForm in ArcGIS API for MS 2.0 and it works. but it doesn't work when it's upgrated to 2.1 and gives a unhandled exception -  system.nullReferenceException. Please help! Appreciate!

   <Style x:Key="FeatureDataFormStyle1" TargetType="esri:FeatureDataForm" Style="{StaticResource FeatureDataFormStyle1}">
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FFF3F7FA" Offset="0"/>
                            <GradientStop Color="#FFFFFFFF" Offset="0.1"/>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
                <Setter Property="BorderBrush">
                    <Setter.Value>
                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                            <GradientStop Color="#FFA3AEB9" Offset="0"/>
                            <GradientStop Color="#FF8399A9" Offset="0.375"/>
                            <GradientStop Color="#FF718597" Offset="0.375"/>
                            <GradientStop Color="#FF617584" Offset="1"/>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="esri:FeatureDataForm">
                            <Border x:Name="DataFormBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="2">
                                <Border.Resources>
                                    <Style x:Key="CustomScrollViewerStyle" TargetType="ScrollViewer">
                                        <Setter Property="BorderThickness" Value="0,1"/>
                                        <Setter Property="Template">
                                            <Setter.Value>
                                                <ControlTemplate TargetType="ScrollViewer">
                                                    <Grid>
                                                        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="0,-1" Opacity="0.2" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}">
                                                            <Border.OpacityMask>
                                                                <LinearGradientBrush EndPoint="1.07,0.5" StartPoint="-0.07,0.5">
                                                                    <GradientStop Color="#FF000000"/>
                                                                    <GradientStop Color="#7FFFFFFF" Offset="0.5"/>
                                                                    <GradientStop Color="#FF000000" Offset="1"/>
                                                                </LinearGradientBrush>
                                                            </Border.OpacityMask>
                                                        </Border>
                                                        <Grid Background="{TemplateBinding Background}">
                                                            <Grid.ColumnDefinitions>
                                                                <ColumnDefinition Width="*"/>
                                                                <ColumnDefinition Width="Auto"/>
                                                            </Grid.ColumnDefinitions>
                                                            <Grid.RowDefinitions>
                                                                <RowDefinition Height="*"/>
                                                                <RowDefinition Height="Auto"/>
                                                            </Grid.RowDefinitions>
                                                            <ScrollContentPresenter x:Name="ScrollContentPresenter" Cursor="{TemplateBinding Cursor}" ContentTemplate="{TemplateBinding ContentTemplate}" Margin="{TemplateBinding Padding}"/>
                                                            <Rectangle Grid.Column="1" Fill="#FFE9EEF4" Grid.Row="1"/>
                                                            <ScrollBar x:Name="VerticalScrollBar" Grid.Column="1" IsTabStop="False" Maximum="{TemplateBinding ScrollableHeight}" Margin="0,-1" Minimum="0" Orientation="Vertical" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{TemplateBinding VerticalOffset}" ViewportSize="{TemplateBinding ViewportHeight}" Width="18"/>
                                                            <ScrollBar x:Name="HorizontalScrollBar" Grid.Column="0" Height="18" IsTabStop="False" Maximum="{TemplateBinding ScrollableWidth}" Margin="-1,0,-1,-1" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{TemplateBinding HorizontalOffset}" ViewportSize="{TemplateBinding ViewportWidth}"/>
                                                        </Grid>
                                                    </Grid>
                                                </ControlTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </Border.Resources>
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="30"/>
                                        <RowDefinition Height="*"/>
                                        <RowDefinition Height="Auto"/>
                                    </Grid.RowDefinitions>
                                    <ScrollViewer Grid.Row="1" Background="{x:Null}" IsTabStop="False" Padding="{TemplateBinding Padding}" Style="{StaticResource CustomScrollViewerStyle}" VerticalScrollBarVisibility="Auto">
                                        <ContentPresenter x:Name="ContentPresenter" Margin="12,5,6,5" IsHitTestVisible="False"/>
                                    </ScrollViewer>
                                    <Grid Margin="5" Grid.Row="2" HorizontalAlignment="Center">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Button x:Name="SaveButton" Content="Continue" Grid.Column="0"  HorizontalContentAlignment="Center" Margin="5,0,5,5" MinWidth="75" MinHeight="22" Style="{TemplateBinding CommitButtonStyle}" Visibility="Visible" VerticalAlignment="Center" VerticalContentAlignment="Center" Click="btnApply_Click"/>
                                        <Button x:Name="CancelButton" Content="Cancel" Grid.Column="2"  HorizontalContentAlignment="Center" Margin="0,0,5,5" MinWidth="75" MinHeight="22" Style="{TemplateBinding CommitButtonStyle}" Visibility="Visible" VerticalAlignment="Center" VerticalContentAlignment="Center" Click="btnCancel_Click"/>
                                    </Grid>
                                </Grid>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
<!------------->
<esri:FeatureDataForm x:Name="MyFeatureDataForm" 
                                         FeatureLayer="{Binding Path=Layers[ParkandRecreation], ElementName=Map}"
                                         IsReadOnly="False" LabelPosition="Left" />
0 Kudos
1 Reply
AliMirzabeigi
New Contributor
Xiuju,

Thank you for your report. We are aware of this issue and currently looking into it. The fix will be available soon.
In the meantime you can use "CommitButton" as the name for your "SaveButton" button in your custom template to  workaround the issue. We apologize for the inconvenience.
0 Kudos