标签: data-binding

WPF数据绑定到接口而不是实际对象 - 可能吗?

说我有这样的界面:

public interface ISomeInterface
{
...
}
Run Code Online (Sandbox Code Playgroud)

我还有几个实现这个接口的类;

public class SomeClass : ISomeInterface
{
...
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个WPF ListBox列出了ISomeInterface的项目,使用自定义DataTemplate.

数据绑定引擎显然不会(我已经弄明白)允许我绑定到接口属性 - 它看到该对象是一个SomeClass对象,并且数据只显示SomeClass应该碰巧有绑定属性可用非接口属性.

我怎么能告诉DataTemplate好像每个对象都是一个ISomeInterface,而不是SomeClass等?

谢谢!

c# data-binding wpf

50
推荐指数
6
解决办法
2万
查看次数

如何在XAML中将颜色转换为画笔?

我想将System.Windows.Media.Color值转换为System.Windows.Media.Brush.颜色值被数据绑定到Rectangle对象的Fill属性.Fill属性采用Brush对象,因此我需要一个IValueConverter对象来执行转换.

WPF中是否有内置转换器,还是需要创建自己的转换器?如果有必要,我该如何创建自己的?

data-binding wpf xaml colors converter

49
推荐指数
4
解决办法
5万
查看次数

Spring:@ModelAttribute VS @RequestBody

如果我错了,请纠正我.两者都可用于数据绑定.

问题是何时使用@ModelAttribute?

@RequestMapping(value="/owners/{ownerId}/pets/{petId}/edit", method = RequestMethod.POST)
public String processSubmit(@ModelAttribute Pet pet) { }
Run Code Online (Sandbox Code Playgroud)

另外,何时使用@RequestBody?

@RequestMapping(value = "/user/savecontact", method = RequestMethod.POST
public String saveContact(@RequestBody Contact contact){ }
Run Code Online (Sandbox Code Playgroud)

根据我的理解,两者都有类似的用途.

谢谢!!

data-binding spring spring-mvc

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

数据绑定 - safeUnbox警告

将AS gradle版本升级到2.3.0后,数据绑定会遇到警告:

警告:selectMap [index]是一个盒装字段但需要取消装箱才能执行selectMap [index]?@android:颜色/白色:@android:颜色/透明.这可能会导致NPE,因此数据绑定将安全地取消它.您可以更改表达式并使用safeUnbox()显式地包装selectMap [index]以防止出现警告

selectMap是一个ObservableMap,然后我搜索这个警告,但只进行了一些讨论而没有修复它

Android Studio 2.3.0-alpha1:Databinding + int拆箱会导致编译错误

数据绑定 - API 15-18上的数据对象为空

我按照链接的方式,修改selectMap[index]safeUnbox(selectMap[index])但语法错误.

所以任何人都知道如何修复此警告?


编辑:这是xml文件代码

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<data class="SupportCountryViewHolderBinding">

    <variable
        name="viewModel"
        type="com.goodarc.care_about.activity.account.support_country.SupportCountryHolderViewModel" />

    <variable
        name="dataSource"
        type="com.goodarc.care_about.module.assets_file.SupportCountry" />

    <variable
        name="selectMap"
        type="android.databinding.ObservableMap&lt;Integer, Boolean&gt;" />

    <variable
        name="index"
        type="int" />
</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@{selectMap[index] ? @android:color/white : @android:color/transparent}"
    android:onClick="@{(v) -> viewModel.onItemSelectListener(selectMap, index)}"
    android:orientation="vertical"
    android:padding="20dp">

    <TextView
        style="@style/TitleLabel2"
        android:layout_gravity="center_vertical|start"
        android:text="@{dataSource.display}"
        android:textColor="@{selectMap[index] ? @android:color/black : @android:color/white}"
        tools:text="Taiwan (+886)" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

构建成功,但警告出来(我在上面).

data-binding android warnings android-gradle-plugin android-databinding

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

WPF BooleanToVisibilityConverter在false时转换为Hidden而不是Collapsed?

有没有办法使用现有的WPF BooleanToVisibilityConverter转换器但是将False值转换为Hidden而不是默认的Collapsed,或者我应该自己编写?我正在进行一个项目,在这个项目中,做这样简单的事情会带来巨大的开销(共享的东西进入一个单独的解决方案,而重建/签入/合并过程是一个过度生长的变异庞然大物的过程),所以我更愿意,如果我可以将参数传递给现有参数,而不是跳过刚才提到的箍.

.net data-binding wpf ivalueconverter

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

WPF DataBinding:Nullable Int仍然出现验证错误?

我通过代码将文本框数据绑定到可以为空的int.如果我从文本框中删除数据,它会给我一个验证错误(它周围的红色边框).

这是我的绑定代码:

ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);

public Int32? Zip { get { ... } set { ... } }
Run Code Online (Sandbox Code Playgroud)

它清楚地标记为Nullable,那么为什么当我清除文本框时WPF想给我一个验证问题?

c# data-binding validation wpf

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

WPF ComboBox通过绑定大型集合来解决性能问题

我正在尝试将大型集合绑定到ComboBox,并且在打开ComboBox的弹出窗口时遇到了性能问题.我搜索了互联网,发现使用VirtualizingStackPanel作为项目面板模板可能有所帮助,但它只能帮助部分.如果我将一个大型集合绑定到一个ComboBox,我可以非常快速地打开弹出窗口,这没关系,但如果之后我将另一个集合绑定到一个ComboBox并尝试再次打开弹出窗口,它会变得非常慢.如果您为空ComboBox打开弹出窗口,然后绑定大型集合并尝试再次打开弹出窗口,则会发生同样的情况 - 弹出窗口打开前需要几秒钟.

这是XAML:

<ComboBox Name="cbBlah">
    <ComboBox.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel />
        </ItemsPanelTemplate>
    </ComboBox.ItemsPanel>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

和绑定的示例代码重现问题:

var list = new List<string>();
for (var i = 0; i < new Random().Next(9000, 10000); i++)
    list.Add(i.ToString());
cbBlah.ItemsSource = list;
Run Code Online (Sandbox Code Playgroud)

我试图使虚拟化堆栈面板看起来像这样:

<VirtualizingStackPanel VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" />
Run Code Online (Sandbox Code Playgroud)

但它没有帮助,似乎忽略了VirtualizationMode,因此弹出窗口仅在第一次打开非常快,然后,每次绑定更改后,它都非常慢.

更新:我想过每次都没有绑定新的集合,但是绑定一次ObservableCollection然后只是改变它的内容.同样的事情,一旦收集内容发生变化,打开一个弹出窗口仍然需要几秒钟:(

data-binding wpf combobox wpf-controls

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

数据绑定Android - 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity

我正在使用Android Studio 2.0 Preview 4.我使用的是Android SDK工具25 rc1.无论清理/重建项目多少次,此错误都会持续存在.文件 - >无效缓存并重新启动也不起作用.我无法运行最基本的数据绑定示例.

build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.chiragshenoy.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled = true
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

package com.example.chiragshenoy.myapplication;

import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity …
Run Code Online (Sandbox Code Playgroud)

data-binding android android-databinding

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

绑定和x之间的区别:绑定

什么在UWP中使用,Binding或者x:Bind它们之间有什么区别?

因为我看到人们使用的很多帖子,Binding我只x:Bind在UWP中绑定.

在MSDN首页只说:"通过创建装订物体{x:Bind}{Binding}在很大程度上是功能相当的." 那x:Bind.

但它们之间有什么区别?

因为"在很大程度上与功能相当"并不意味着相当.

我的报价链接:MSDN

所以我的问题是:

使用Binding或x有什么区别:在UWP中绑定?

data-binding xaml win-universal-app uwp

47
推荐指数
2
解决办法
9448
查看次数

Android数据绑定将参数传递给onClick方法

是否可以onClick使用数据绑定库将自定义参数传递给方法?我有我的布局xml文件,我需要使用onClickListener:

<?xml version="1.0" encoding="utf-8"?>
<layout ...>

    <data>
        <variable
            name="viewModel"
            type="com.productivity.tiktak.ui.tracker.viewModel.CategoryViewModel"/>
        <variable
            name="callback"
            type="com.productivity.tiktak.ui.tracker.TrackerAdapter"/>
    </data>

    <android.support.v7.widget.CardView
        android:onClick="@{callback.onCategoryClick(viewModel)}"
        ...
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <!-- ... Some stuff -->

    </android.support.v7.widget.CardView>
</layout>
Run Code Online (Sandbox Code Playgroud)

我在这里有我的点击处理程序代码:

public void onCategoryClick(View view, CategoryViewModel categoryViewModel)
{
    //handler code...
}
Run Code Online (Sandbox Code Playgroud)

是否可以将我的CategoryViewModel对象从xml传递到单击处理程序?

java xml data-binding android

46
推荐指数
2
解决办法
4万
查看次数