小编Cod*_*gTT的帖子

升级到gradle 5.0后,Android数据绑定“虽然已注册但缺少导入表达式”

我将Android Studio升级到3.4之后,将Android Gradle插件升级到3.4并升级到5.1.1

我收到如下数据绑定错误

我确保已清理项目并进行重建,已清除缓存并重新启动了AS。

升级之前从未发生过此问题

我可以确认这是因为新的gradle更新

DataBinderMapperImpl.java:54:错误:找不到符号

e:[kapt]发生异常:android.databinding.tool.util.LoggedErrorException:发现数据绑定错误。**** /数据绑定错误**** msg:尽管已注册导入表达式,但缺少

我找到了解决方案:解决方案:

  1. 现在已发布3.4.1,请使用3.4.1
  2. 删除布局XML中的所有导入类型
  3. 从布局XML的导入类型中删除所有字符串
  4. 从布局XML的导入类型中删除所有整数

android android-gradle-plugin android-databinding androidx

28
推荐指数
1
解决办法
3339
查看次数

当ItemsSource更改时自动刷新Datagrid

我在UserControl中使用数据网格.如何在不使用DataGrid.Items.Refresh()的情况下更改其ItemsSource时自动刷新Datagrid;

wpf datagrid refresh

5
推荐指数
1
解决办法
2万
查看次数

WPF UserControl上下文菜单可见性绑定

我的用户控件上下文菜单可见性无法绑定依赖项属性.任何的想法?

这是我的WPF代码

<UserControl.ContextMenu>
    <ContextMenu Visibility="{Binding ElementName=wellControl, Path=IsInCompactMode, Converter={StaticResource BooleanToVisibilityConverter}}">
    <MenuItem Command="local:GCommands.Edit" />
    <MenuItem Command="local:GCommands.Delete" />
    <MenuItem Command="local:GCommands.ExportFcsFiles" />
    <MenuItem Command="local:GCommands.BatchExportStatistics" />
    <Separator/>
    <MenuItem Command="local:GCommands.SaveAs" Header="Save As..." />
    </ContextMenu>
</UserControl.ContextMenu>
Run Code Online (Sandbox Code Playgroud)

如果我设置Visibility ="Hidden",它将对我有用.像这样:

<ContextMenu Visibility="Hidden"/>
Run Code Online (Sandbox Code Playgroud)

如果使用它,它将无法正常工作

<ContextMenu Visibility="{Binding ElementName=wellControl, Path=IsInCompactMode, Converter={StaticResource BooleanToVisibilityConverter}}">
Run Code Online (Sandbox Code Playgroud)

我很确定Visibility ="{Binding ElementName = wellControl,Path = IsInCompactMode,Converter = {StaticResource BooleanToVisibilityConverter}}"没有问题,因为它适用于其他人.

这是我的依赖属性

public bool IsInCompactMode
        {
            get {return (bool)GetValue(IsInCompactModeProperty); }
            set {SetValue(IsInCompactModeProperty, value); }
        }
        public static readonly DependencyProperty IsInCompactModeProperty =
            DependencyProperty.Register("IsInCompactMode", typeof(bool), typeof(WellControl), new PropertyMetadata(false));
Run Code Online (Sandbox Code Playgroud)

我试过这种方式,似乎它仍然不起作用,这真是太奇怪了!

<ContextMenu x:Name="menu" IsOpen="{Binding ElementName=wellControl, …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls contextmenu

5
推荐指数
1
解决办法
9741
查看次数

禁用整个上下文菜单

我知道有一种方法可以阻止或现在通过使用ContextMenuOpening事件显示上下文菜单.

但我仍然想显示上下文菜单,只是禁用其中的所有内容,有没有办法做到这一点?

如何同时禁用所有菜单项?

<DataTemplate x:Key="ItemDataTemplate">
        <Grid Background="Transparent">
            <Grid.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="New" Click="New_Click" />
                    <Separator />
                    <MenuItem Header="Duplicate" Click="Duplicate_Click"/>
                    <MenuItem Header="Delete" Click="Delete_Click"  />
                    <MenuItem Header="Rename" Click="Rename_Click" />
                    <Separator />
                    <MenuItem Header="Export..." Click="Export_Click" />                       
                    <MenuItem Header="Print..." Command="ApplicationCommands.Print" InputGestureText="" />
                    <Separator />
                    <MenuItem Header="Properties" Click="Properties_Click" />
                </ContextMenu>
            </Grid.ContextMenu>
            <StackPanel Orientation="Horizontal"
                        Margin="0,0,10,0"
                        HorizontalAlignment="Stretch"
                        Background="Transparent"
                        IsHitTestVisible="False">    
            </StackPanel>
        </Grid>    
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

wpf contextmenu

3
推荐指数
3
解决办法
1万
查看次数

CellTemplateSelector 不会自动选择模板

我有两个 DataGridTemplateColumn 模板

     <DataTemplate x:Key="firstTemplate">
        <UniformGrid Grid.Column="1" Columns="2">
            <Label Background="{Binding Path=Color,

                                   Converter={StaticResource gradientBrush}}"
                       Content="{Binding Path=Value}"
                       Style="{StaticResource WhiteCellLabelStyle}"
                       Visibility="Visible" />                  
        </UniformGrid>
    </DataTemplate>

    <DataTemplate x:Key="secondTemplate">
        <UniformGrid Grid.Column="1" Columns="{Binding Converter={StaticResource getColumnsAmount}}">
            <Label Background="{Binding Path=ColorData_1.Color,
                                        Converter={StaticResource gradientBrush}}"
                   Content="{Binding Path=ColorData_1,
                                     Converter={StaticResource ValueRangeConvert}}"
                   Style="{StaticResource WhiteCellLabelStyle}"
                   Visibility="{Binding Path=ColorData_1.IsSelected,
                                        Converter={StaticResource boolConvert}}" />
            <Label Background="{Binding Path=ColorData_2.Color,
                                        Converter={StaticResource gradientBrush}}"
                   Content="{Binding Path=ColorData_2,
                                     Converter={StaticResource ValueRangeConvert}}"
                   Style="{StaticResource WhiteCellLabelStyle}"
                   Visibility="{Binding Path=ColorData_2.IsSelected,
                                        Converter={StaticResource boolConvert}}" />
            <Label Background="{Binding Path=ColorData_3.Color,
                                        Converter={StaticResource gradientBrush}}"
                   Content="{Binding Path=ColorData_3,
                                     Converter={StaticResource ValueRangeConvert}}"
                   Style="{StaticResource WhiteCellLabelStyle}"
                   Visibility="{Binding Path=ColorData_3.IsSelected,
                                        Converter={StaticResource boolConvert}}" />             
        </UniformGrid>          
    </DataTemplate>


    <DataGrid Name="dgLegend" …
Run Code Online (Sandbox Code Playgroud)

wpf templates datatemplate datatemplateselector

2
推荐指数
1
解决办法
4525
查看次数

按米缩放Google地图标记图像(固定地理尺寸)

我有一个svg文件,正在将其用于Google地图标记。尺寸为65像素x 65像素。

我想确保此自定义标记可以缩放到1500米。地图缩放时,它应该缩放。

我不确定如何使这项工作。需要一种算法来根据缩放级别计算scaledSize并使用户在地图上为1500米。

            var offset = new google.maps.Point(50, 50);
            var getIcon = function (uid, selected) {
                return {
                    url: svg_url,
                    anchor: offset,
                    scaledSize: sccaledSize // not sure what to put here
                };
            };
            new google.maps.Marker({
                    position: new google.maps.LatLng(xx,yy),
                    icon: getIcon(Uid, false)
                });
Run Code Online (Sandbox Code Playgroud)

svg google-maps google-maps-api-3 marker google-maps-markers

2
推荐指数
1
解决办法
1866
查看次数