我是WPF的新手,我只是设法将特定类项的列表绑定到ListBox.ListBox现在成功显示它们.这是一些代码,首先是类:
public class OrderItem
{
public int Quantity { get; set; }
public string Name { get; set; }
public Double Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
一些虚拟数据和绑定,都发生在主程序的构造函数中:
List<OrderItem> currentOrderItems = new List<OrderItem>();
currentOrderItems.Add(new OrderItem() { Quantity = 5, Name = "Test", Price = 5 });
currentOrderItems.Add(new OrderItem() { Quantity = 15, Name = "Test test", Price = 6.66 });
currentOrderItems.Add(new OrderItem() { Quantity = 1, Name = "Test 3", Price = 15.88 });
listOrderItems.ItemsSource = currentOrderItems;
Run Code Online (Sandbox Code Playgroud)
和XAML:
<ListBox HorizontalAlignment="Left" …Run Code Online (Sandbox Code Playgroud) 你可以将SolidColorBrush绑定到后面代码中的颜色吗?我希望能够这样做:
Binding binding = new Binding("FontColor");
binding.Source = this;
SolidColorBrush brush = new SolidColorBrush();
brush.SetBinding(SolidColorBrush.ColorProperty, binding);
Run Code Online (Sandbox Code Playgroud)
我知道画笔不是BindingExpressionBase,所以它没有SetBinding()方法.但是你可以在xaml中设置绑定.你是如何在代码背后做到的?
我是Javascript和Knockout的新手.我坚持要绑定我的ViewModal.以下是ViewModal和View在同一个Index.chtml文件中时正在运行的代码:
ProfilesViewModel = function () {
self = this;
self.ProfileId = ko.observable("");
self.FirstName = ko.observable("");
self.LastName = ko.observable("");
self.Email = ko.observable("");
self.Image = ko.observable("");
self.Phone = ko.observable("");
// Public data properties
self.Profiles = ko.observableArray([]);
GetAllProfiles();
function GetAllProfiles() {
// alert("here");
$.ajax({
type: "get",
url: "@Url.Action("getAllProfiles")",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
self.Profiles(data); //Put the response in ObservableArray
},
error: function (error) {
alert(error.status + "<--and--> " + error.statusText);
}
});
};
}
Run Code Online (Sandbox Code Playgroud)
但当我将我的ViewModal移动到另一个Js文件时,如下 Modal.js代码: …
我无法将组合框的ItemsSource设置为数组.我已经尝试将DataContext设置为找到Array的类,然后在XAML中设置绑定
class Car
{
public string[] makes;
}
Run Code Online (Sandbox Code Playgroud)
...
public MainWindow()
{
Car _Car = new Car();
_Car.makes = new string[]
{
"Toyota",
"Mitsubishi",
"Audi",
"BMW"
};
this.DataContext = _Car;
}
Run Code Online (Sandbox Code Playgroud)
然后在XAML中
<ComboBox Name="cars" Grid.Column="0"
Grid.Row="0" Margin="5"
ItemsSource="{Binding Path=makes}"/>
Run Code Online (Sandbox Code Playgroud)
它似乎没有做任何事情.我的汽车组合框不会有任何物品.
我也试过明确分配
cars.ItemsSource= new string[]{
"Toyota",
"Mitsubishi",
"Audi",
"BMW"
};
Run Code Online (Sandbox Code Playgroud)
但后来我收到此错误消息:
调用的目标抛出了异常.
我错过了什么吗?
我试图解决一些经常发生的数据绑定错误,如下所示
System.Windows.Data Error: 40 : BindingExpression path error: 'Active' property not found on 'object' ''FrameViewModel' (HashCode=55649279)'. BindingExpression:Path=Active; DataItem='FrameViewModel' (HashCode=55649279); target element is 'ContentControl' (Name='HeaderBorder'); target property is 'NoTarget' (type 'Object')
Run Code Online (Sandbox Code Playgroud)
我有一个附加的依赖属性Active
public bool Active
{
get
{
return (bool)GetValue(ActiveProperty);
}
set
{
SetValue(ActiveProperty, value);
}
}
public static readonly DependencyProperty ActiveProperty
= DependencyProperty.RegisterAttached("Active", typeof(bool), typeof(Card));
Run Code Online (Sandbox Code Playgroud)
绑定在控件模板中的主题文件中设置
<ControlTemplate x:Key="FrameHeader" TargetType="ContentControl">
.....
.....
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Active}" Value="True">
<Setter TargetName="HeaderBackground" Property="Background" Value="{DynamicResource SelectedHeaderBrush}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Active}" Value="False">
<Setter TargetName="HeaderBackground" Property="Background" Value="{DynamicResource …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的editText:
<EditText
local:MvxBind="Text MyProperty; Click MyCommand"
android:inputType="textShortMessage"
android:imeOptions="actionSend" />
Run Code Online (Sandbox Code Playgroud)
我希望命令由键盘上的"输入/操作"键触发.我应该在绑定中使用什么动词?"更改"动词我当前在控件中的任何触摸上使用触发器!(
我有一个WPF组合框,它绑定到这样的枚举:
<Window.Resources>
<local:EnumDescriptionConverter x:Key="enumDescriptionConverter"/>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="cityNamesDataProvider">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:MyModel+CityNamesEnum"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<ComboBox x:Name="cityNameComboBox" ItemsSource="{Binding Source={StaticResource cityNamesDataProvider}}" SelectionChanged="cityNameComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource enumDescriptionConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
我绑定的枚举具有描述属性,如下所示:
public enum CityNamesEnum
{
[Description("New York City")]
NewYorkCity,
[Description("Chicago")]
Chicago,
[Description("Los Angeles")]
LosAngeles
}
Run Code Online (Sandbox Code Playgroud)
我并不总是希望显示每个枚举值.是否可以切换一个或多个枚举值的可见性?如果这些是ComboBoxItems,我想我可以简单地将.Visibility属性设置为隐藏,但由于它们是枚举值,我不确定这是否可行.有人知道吗?
我试图为我的功能区提供数据模板.
功能区声明如下,并附加了ItemTemplate.
<r:Ribbon Name="RibbonMain"
ItemTemplate="{StaticResource HomeRibbonTabTemplate}">
</r:Ribbon>
Run Code Online (Sandbox Code Playgroud)
Datatemplate如下:
<Window.Resources>
<DataTemplate DataType="{x:Type local:RibbonContainer}"
x:Key="HomeRibbonTabTemplate">
<r:RibbonTab Header="{Binding Path=HeaderName}">
<r:RibbonGroup Header="{Binding Path=GroupName}">
</r:RibbonGroup>
</r:RibbonTab>
</DataTemplate>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
然后我附上ItemsSource:
public MainWindow()
{
InitializeComponent();
var RibbonTabData = new ObservableCollection<RibbonContainer>();
RibbonTabData.Add(new RibbonContainer("HeaderName", "GroupName"));
RibbonMain.ItemsSource = RibbonTabData;
}
Run Code Online (Sandbox Code Playgroud)
最后是类:(其中只包含两个字符串字段)
class RibbonContainer
{
public string HeaderName
{
get;
set;
}
public string GroupName
{
get;
set;
}
public RibbonContainer(string _headername, string _groupname)
{
HeaderName = _headername;
GroupName = _groupname;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了在标题标题中显示完全限定类名的不起眼的结果,并且ribbongroup也没有显示.(这是datatemplate应该解决的问题?)怎么办?
最好的祝福
我创建了充当报表加载器的窗体.我还通过报告向导创建了两个RDLC报告,并自动为这两个报告创建了数据集.现在我有两个数据集:sparcsn4DataSet.xsd和sparcsn4DataSet1.xsd,它们使用存储过程并传递两个参数(dateFrom/dateTo).我有绑定数据集的问题,具体取决于状态:
if (idRep.Equals("extraMove"))
Run Code Online (Sandbox Code Playgroud)
如果您有一个报告,将数据集绑定到reportview非常容易.
但如果你有多个呢?我总是可以使用另一个reportviewer创建另一个表单,但这不是一个选项(如果你有10个报表/数据集),这绝对是不可能的?
应该有办法将数据集绑定到reportviewer ...有没有人有想法,我如何根据状态解决绑定问题?
if (idRep.Equals("extraMove"))
{
this.AGCT_ServiceEventReportTableAdapter.Fill(this.sparcsn4DataSet.AGCT_ServiceEventReport, d1,d2);
}
else if (idRep.Equals("stripStuff"))
{
this.AGCT_StripStuffReportTableAdapter.Fill(this.sparcsn4DataSet1.AGCT_StripStuffReport, d1, d2);
}
else
{
MessageBox.Show("Ooops, something went wrong...!");
}
Run Code Online (Sandbox Code Playgroud)
这是ReportForm.cs上有reportviewer:
namespace NavisReportLoader
{
public partial class ReportForm : Form
{
public DateTime d1;
public DateTime d2;
public string dat1;
public string dat2;
public string idRep;
public ReportForm()
{
InitializeComponent();
}
public void passParam(string dateFrom, string dateTo, string date1, string date2)
{
//ispravi ovo
d1 = Convert.ToDateTime(dateFrom);
d2 = Convert.ToDateTime(dateTo);
dat1 = …Run Code Online (Sandbox Code Playgroud) 如何在JavaFX中绑定双向嵌套属性?
例如,我有一个对象p,其具有化子性质prop1和prop2,这反过来又具有属性value两者.
如何将它们双向绑定,以便它们约束相等?
package tests.javafx.beans.binding;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleObjectProperty;
public class Try_BindNested {
public static class Nested {
private SimpleDoubleProperty value = new SimpleDoubleProperty();
public double getValue() {
return value.get();
}
public void setValue(double value) {
this.value.set(value);
}
public SimpleDoubleProperty valueProperty() {
return value;
}
}
public static class Parent {
private SimpleObjectProperty<Nested> prop1 = new SimpleObjectProperty<Nested>();
private SimpleObjectProperty<Nested> prop2 = new SimpleObjectProperty<Nested>();
public Nested getProp1() {
return prop1.get();
}
public void …Run Code Online (Sandbox Code Playgroud) binding ×10
c# ×6
wpf ×6
combobox ×2
asp.net-mvc ×1
brush ×1
dataset ×1
enums ×1
itemssource ×1
java ×1
javabeans ×1
javafx ×1
javascript ×1
knockout.js ×1
listbox ×1
mvvmcross ×1
mvxbind ×1
reportviewer ×1
xaml ×1