标签: data-binding

实现WPF TextBoxes的验证

我有3个TextBoxes(Id1,NameSalary).Id并且Salary应该包含整数,并且Name只应包含字符.我需要对TextBox进行验证,它应该在输入错误的字符或整数时显示错误.也可以只在没有代码隐藏的Xaml中完成吗?请帮我提供所需的代码

这是Xaml代码:

<TextBox Name="tb1" HorizontalAlignment="Left" Height="20" Margin="60,10,0,0" TextWrapping="NoWrap" Text="{Binding SelectedItem.Id,ElementName=dgsample}" VerticalAlignment="Top" Width="100" />
<TextBox Name="tb2" HorizontalAlignment="Left" Height="20" Margin="60,60,0,0" TextWrapping="NoWrap" Text="{Binding SelectedItem.Name, ElementName=dgsample}" VerticalAlignment="Top" Width="100"/>
<TextBox Name="tb3" HorizontalAlignment="Left" Height="20" Margin="60,110,0,0" TextWrapping="NoWrap" Text="{Binding SelectedItem.Salary, ElementName=dgsample}" VerticalAlignment="Top" Width="100"/>
Run Code Online (Sandbox Code Playgroud)

c# data-binding validation wpf xaml

36
推荐指数
4
解决办法
12万
查看次数

如何在c#中进行数据绑定?

我有以下课程

public class Car
{
   public Name {get; set;}
}

我想以编程方式将其绑定到文本框.

我怎么做?

在黑暗中拍摄:

...
Car car = new Car();
TextEdit editBox = new TextEdit();
editBox.DataBinding.Add("Name", car, "Car - Name");
...

我收到以下错误

"无法绑定到目标控件上的'属性'名称.

我做错了什么,我应该怎么做?我发现数据绑定概念来自Web开发有点难以理解.

c# data-binding winforms

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

使用Grid作为ItemsPanelTemplate的ListBox会产生奇怪的绑定错误

我有一个ListBox控件,我在网格布局中呈现固定数量的ListBoxItem对象.所以我将ItemsPanelTemplate设置为Grid.

我从后面的代码访问Grid以配置RowDefinitions和ColumnDefinitions.

到目前为止,它都像我期望的那样工作.我有一些自定义的IValueConverter实现,用于返回每个ListBoxItem应该出现的Grid.Row和Grid.Column.

但是我有时会遇到奇怪的绑定错误,我无法弄清楚它们为什么会发生,或者即使它们在我的代码中.

这是我得到的错误:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ListBoxItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment')

谁能解释一下发生了什么?

哦,这是我的XAML:

<UserControl.Resources>
    <!-- Value Converters -->
    <v:GridRowConverter x:Key="GridRowConverter" />
    <v:GridColumnConverter x:Key="GridColumnConverter" />
    <v:DevicePositionConverter x:Key="DevicePositionConverter" />
    <v:DeviceBackgroundConverter x:Key="DeviceBackgroundConverter" />

    <Style x:Key="DeviceContainerStyle" TargetType="{x:Type ListBoxItem}">
        <Setter Property="FocusVisualStyle" Value="{x:Null}" />
        <Setter Property="Background" Value="Transparent" />

        <Setter Property="Grid.Row" Value="{Binding Path=DeviceId, Converter={StaticResource GridRowConverter}}" />
        <Setter Property="Grid.Column" Value="{Binding Path=DeviceId, Converter={StaticResource GridColumnConverter}}" />

        <Setter Property="Template"> …
Run Code Online (Sandbox Code Playgroud)

.net data-binding wpf listbox itemspaneltemplate

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

ASP.NET中的<%#Bind("")%>和<%#Eval("")%>有什么区别?

我已经看到bind和eval可以互换使用,尤其是在ASP.NET GridViews中.有什么不同?

asp.net data-binding

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

<%#Eval("State")%>或<%#DataBinder.Eval(Container.DataItem,"state")%>

有什么区别

<%# Eval("State") %>
Run Code Online (Sandbox Code Playgroud)

在你的aspx页面,而不是

<%# DataBinder.Eval(Container.DataItem, "State") %>
Run Code Online (Sandbox Code Playgroud)

在你的aspx页面?

asp.net data-binding eval

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

WPF重置焦点按钮单击

我有一个TextBoxToolBar一个Button.如果我正在键入,TextBox我点击Button我想要TextBox丢失,Focus所以绑定得到更新.我不想加UpdateSourceTrigger=PropertyChanged我的TextBox.但是当我点击Button我重置Focus到主窗口时,我所做的就是丢失Focus并更新绑定.

我尝试OnClick使用以下内容添加到按钮,但它似乎不起作用:

    private void Button_Click(object sender, RoutedEventArgs e) {
        FocusManager.SetFocusedElement(this, null);
    }
Run Code Online (Sandbox Code Playgroud)

任何提示将不胜感激.

谢谢,劳尔

c# data-binding wpf focus button

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

WPF将ListBox绑定到枚举,显示描述属性

是否可以使用ObjectDataProvider方法将ListBox绑定到枚举,并以某种方式设置样式以显示描述attriibute?如果是这样,怎么会这样做...?

c# data-binding wpf enums listbox

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

winForms + DataGridView绑定到List <T>

我正在尝试绑定List<T>到DataGridView控件,我没有运气创建自定义绑定.

我试过了:

gvProgramCode.DataBindings.Add(new Binding("Opcode",code,"Opcode"));
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常,说该属性名称没有找到任何内容.

相关列的名称是"操作码".List<T>操作码中的属性名称.

回答编辑:问题是我的类中没有可绑定字段作为属性,只有公共字段......显然它不反映字段,只反映属性.

data-binding winforms

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

绑定WPF样式

我正在尝试创建一个自定义控件 - 一个按钮 - 根据数据上下文中属性的值,它将应用多种样式.

我在想的是使用类似的东西:

<Button Style="{Binding Path=ButtonStyleProperty, Converter={StaticResource styleConverter}}" Text="{Binding Path=TextProp}" />
Run Code Online (Sandbox Code Playgroud)

在代码中......实现一个IValueConverter,它在ConvertTo方法中执行类似下面的代码:

switch(value as ValueEnums)
{
    case ValueEnums.Enum1:
        FindResource("Enum1ButtonStyle") as Style;
    break;

    ... and so on.
} 
Run Code Online (Sandbox Code Playgroud)

但是我不完全确定如何拉出样式对象,即使这是可能的......

我正在做的事情是处理DataContextChanged事件,然后将处理程序附加到PropertyChanged绑定到按钮的对象的事件 - 然后在那里运行switch语句.

它不是很完美,但在我找到一个更好的解决方案之前,我似乎必须使用它.

data-binding wpf styles

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

Android数据绑定生成"在错误位置生成的源文件夹"

已更新至Android Studio 1.3.1并尝试配置dataBinding

顶级gradle文件包含

dependencies {
    classpath 'com.android.tools.build:gradle:1.3.1'
    classpath 'com.android.databinding:dataBinder:1.0-rc1'
} 
Run Code Online (Sandbox Code Playgroud)

项目gradle文件包含

apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.0'
Run Code Online (Sandbox Code Playgroud)

但我得到了以下信息

在错误的位置生成的源文件夹

Warning:Folder /Users/myname/workspace/discoveroom/android-client/Caldroid/build/data-binding-info/debug

Warning:Folder /Users/myname/workspace/discoveroom/android-client/DiscoveroomAndroidClient/build/data-binding-info/debug

Information:3rd-party Gradle plug-ins may be the cause
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

data-binding android android-studio

34
推荐指数
1
解决办法
3544
查看次数