标签: binding

mysqli bind_param失败,但是为什么呢?

以下错误触发mysql错误,这是由于查询未将参数绑定到语句。我不明白为什么会这样。

这是else子句返回的错误:

ERROR -> 1064 : You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to
use near '? ORDER BY dateCreated DESC' at line 4`
Run Code Online (Sandbox Code Playgroud)

这是有问题的代码:

$userId = 1;
if ($stmt = $link->query("
    SELECT o.id, dateCreated, firstValue
    FROM user_orders o 
    LEFT JOIN order_delivery d ON o.id = d.id 
    WHERE o.userId = ? 
    ORDER BY dateCreated DESC
"))
{
    $stmt->bind_param("i", $userId);
    $stmt->execute();
    $stmt->close();
}
else
{
    $pageContent …
Run Code Online (Sandbox Code Playgroud)

php binding mysqli

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

XAML绑定到ViewModel中的控件

ViewModel类:

class MyViewModel : ViewModelBase, INotifyPropertyChanged
{
    public string SomeText { get{...} set {...}}
    public AnyNonMVVMControl MyControl { get {...} set {...}}
    ...
}
Run Code Online (Sandbox Code Playgroud)

窗口XAML:

<Grid>
...
<TextBlock Text="{Binding SomeText}" />
<??? Content="{Binding MyControl}" /> <!-- how to bind MyControl to the View? -->
...
</Grid>
Run Code Online (Sandbox Code Playgroud)

分配模型

...
window.DataContext = new MyViewModel(...);
...
Run Code Online (Sandbox Code Playgroud)

我有一个Control,它不是为MVVM设计的.渲染和数据是强耦合的(糟糕的设计解决方案).我在我的viewmodel中有这个控件,并希望将它绑定到我的窗口.但我不想直接在XAML中添加Control,因为此控件还包含业务逻辑和数据 - >我需要在viewmodel中访问它以执行操作.

那么,如何通过Bindings将控件"添加"到窗口?

.net c# wpf binding mvvm

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

绑定到WPF中的TabControl的ItemsSource

当谈到我目前在WPF中的绑定需求时,我处于绑定状态(没有双关语).我花了大部分时间试图研究我的问题,我找不到解决问题的可靠方法.这里是:

我正在尝试创建一个用户控件来表示我所称的工作空间(Josh Smith的博客参考).工作区将显示在选项卡控件中.我的目标是使用选项卡式界面来管理我打开的各种文档,就像在一本激动人心的工作簿的浏览器中一样.

每次用户使用新工作区时,该工作区都应显示在选项卡控件中.每个工作空间采用用户控件的形式,每个工作空间都有自己的视图模型.我希望Tab Header能够从我的视图模型中显示一个属性,我认为它可能必须通过我的用户控件作为属性公开.

到目前为止,在我遇到很多问题之前,我最喜欢的最干净的解决方案是使用datatemplates.基本上我做了以下事情:

<DataTemplate x:Key="WorkspaceItem">
            <DockPanel Width="120">
                <ContentPresenter 
                    Content="{Binding Title}" 
                    VerticalAlignment="Center" 
                    />
            </DockPanel>
        </DataTemplate>     

<DataTemplate DataType="{x:Type CustomerViewModel}">
   <workspace:CustomerWorkspace />
</DataTemplate>

<TabControl ItemsSource="{Binding Workspaces}"
            ItemTemplate="{StaticResource WorkspaceItem}"/>
Run Code Online (Sandbox Code Playgroud)

TabControl.ItemsSource绑定到包含所有工作空间的observablecollection(Object).

这项工作很有效,除了两件事:

  1. 如果我打开多个客户,那么我打开了多个工作区.由于DataTemplate Recycling,当我从一个选项卡切换到另一个选项卡时,我会丢失状态.所以没有约束的一切都会失去状态.

  2. 不同工作区(使用不同的数据模板)之间交换的性能非常慢.

所以...我在SO上找到了另一个用户的建议,将用户控件添加到ObservableCOllection并丢弃数据模板.现在解决了失去国家的问题之一.但是,现在我面临着剩下的两个问题:

  1. 如何在不使用DataTemplate的情况下设置TabItem.Header属性
  2. 除非它们是相同的DataTemplate,否则在选项卡之间来回交换的速度仍然很慢.

然后,我继续在我的代码隐藏中向ObservableCollection添加一个TabItem,并将TabItem.Content属性设置为用户控件的属性.由于我已经删除了DataTemplates的使用,速度问题现在已经消除,因为失败状态问题.但是,我现在遇到了将TabItem.header绑定到我的usercontrol的Custome"Title"属性的问题,该属性应该显示在Tab Header中.

在这篇非常长的帖子之后,我的问题是:

  1. 有没有办法使用datatemplates并强制它们为集合中的每个项目创建一个新实例,以防止回收和状态丢失.

    1A.有没有比我在上面的帖子中提到的更好的选择?

  2. 有没有办法通过Xaml而不是通过Tab项的后端代码构造来完成所有这些?

wpf binding tabcontrol datatemplate tabitem

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

如何在python中将名称与多个对象或值绑定

我在一本关于语言描述的书中看到了这一点

On the other hand, a name can be bound to no object (a dangling pointer), 
one object (the usual case), or several objects (a parameter name in a 
 recursive function).
Run Code Online (Sandbox Code Playgroud)

我们如何将名称绑定到多个对象?我们所谓的数组是不是所有元素具有相同的名称但具有索引?对于递归函数,如下例所示:

x = 0
def f(y):
    global x
    x += 1
    if x < 4 :
        y +=100
        f(y)

    else: return
f(100)
Run Code Online (Sandbox Code Playgroud)

名称是否y绑定了多个以递归方式创建的值,因为y名称表已经将名称绑定到初始值,并使用递归进行复制?

EDITED只需按下此处Visualizer并查看其生成的内容.:)

python binding python-3.x name-binding

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

C#WPF - 字符串(存储在数据库中)From/To RichTextBox

我花了一天的时间在互联网上搜索我的问题的解决方案但没有成功......理论上这似乎很简单.

我在XAML中有一个RichTextBox.我在我的数据库中有一个名为"content"的字段"LongText"

我只是希望我的数据库以简单的样式(粗体,斜体,下划线)保存RichTextBox的内容,并且我可以调用我的数据库,填充我的数据库中存储的RichTextBox内容,同时保持文本的样式.

之后,我将不得不将这些数据显示为博客,但是......必须已经成功保存并加载数据.

XAML:

<RichTextBox x:Name="nameTextEditor" TabIndex="2" Grid.Row="2" SpellCheck.IsEnabled="True">
Run Code Online (Sandbox Code Playgroud)

C#

FlowDocument doc = new FlowDocument();
        StringReader sr = new StringReader(monArticle.Content);
        XmlReader xmlReader = XmlReader.Create(sr);
        Section sec = XamlReader.Parse(monArticle.Content) as Section;
        while (sec.Blocks.Count > 0)
        {
            var block = sec.Blocks.FirstBlock;
            sec.Blocks.Remove(block);
            doc.Blocks.Add(block);
        }
        nameTextEditor.Document = doc;
Run Code Online (Sandbox Code Playgroud)

不要使用错误:"Exception XamlParseException""Donnéesnonvalides au niveau racine.Ligne 1,position 1."

这不是我尝试的唯一代码,但是我在不理解单词的情况下进行测试...为什么"获取RichTextBox的内容"并"在我的数据库中发送"并不容易?

谢谢你的帮助

c# database xaml binding richtextbox

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

WPF绑定RelativeSource

在这里做一点测试.只有这两个文本框中的第一个显示值"123".为什么不是第二个?

<Window x:Class="Test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
    Title="MainWindow" Height="350" Width="525">
<StackPanel Width="123" x:Name="Panel1">
    <TextBox Text="{Binding ElementName=Panel1, Path=Width, diag:PresentationTraceSources.TraceLevel=High}"></TextBox>
    <TextBox Text="{Binding Source={RelativeSource AncestorType={x:Type StackPanel}}, Path=Width, diag:PresentationTraceSources.TraceLevel=High}"></TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

c# wpf binding relativesource

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

无论如何,WPF验证规则更新

我的View上有一个TextBox,它有一个验证规则:

public class EmptyStringRule : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
       if(String.IsNullOrEmpty(value.ToString()))
           return new ValidationResult(true,"String Cannot be empty");
        return new ValidationResult(true,null);
    }
}
Run Code Online (Sandbox Code Playgroud)

输入空字符串时.绑定属性未更新,文本框标记为红色.我需要更新Source但仍然将Marker保留在Textbox周围.(输入稍后由EF再次验证).

我怎么能这样做?

validation wpf binding

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

将BindingNavigator与以编程方式创建的Datagridview连接

我已经以编程方式创建了一个datagridview.因此,没有绑定源或数据源可以将Datagridview和Binidgnavigator连接到它们.有没有其他方法可以将它们相互连接起来.这是我的datafridview代码

帮我把它连接到bindingNavigator

private void Fill()
{
    try
    {
        if (dataGridView1 != null)
        {
            dataGridView1.ColumnCount = 11;
            dataGridView1.Columns[0].HeaderText = Resources.Form1_Fill_ID;
            dataGridView1.Columns[1].HeaderText = Resources.Form1_Fill_Family;
            dataGridView1.Columns[2].HeaderText = Resources.Form1_Fill_Cellphone;
            dataGridView1.Columns[3].HeaderText = Resources.Form1_Fill_Phone1;
            dataGridView1.Columns[4].HeaderText = Resources.Form1_Fill_Phone2;
            dataGridView1.Columns[5].HeaderText = Resources.Form1_Fill_Phone3;
            dataGridView1.Columns[6].HeaderText = Resources.Form1_Fill_Fax;
            dataGridView1.Columns[7].HeaderText = Resources.Form1_Fill_CompanyName;
            dataGridView1.Columns[8].HeaderText = Resources.Form1_Fill_Agency;
            dataGridView1.Columns[9].HeaderText = Resources.Form1_Fill_Brands;
            dataGridView1.Columns[10].HeaderText = Resources.Form1_Fill_Address;

            dataGridView1.Columns[0].Name = Resources.Form1_Fill_ID;
            dataGridView1.Columns[1].Name = Resources.Form1_Fill_Family;
            dataGridView1.Columns[2].Name = Resources.Form1_Fill_Cellphone;
            dataGridView1.Columns[3].Name = Resources.Form1_Fill_Phone1;
            dataGridView1.Columns[4].Name = Resources.Form1_Fill_Phone2;
            dataGridView1.Columns[5].Name = Resources.Form1_Fill_Phone3;
            dataGridView1.Columns[6].Name = Resources.Form1_Fill_Fax;
            dataGridView1.Columns[7].Name = Resources.Form1_Fill_CompanyName;
            dataGridView1.Columns[8].Name = Resources.Form1_Fill_Agency;
            dataGridView1.Columns[9].Name = Resources.Form1_Fill_Brands;
            dataGridView1.Columns[10].Name …
Run Code Online (Sandbox Code Playgroud)

c# binding datagridview

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

WinRT中的MvvmCross和ListBox/ComboBox绑定

我需要为WinRT应用程序中的列表和组合框实现选择更改事件.我使用的是MvvmCross,但AFAIK这是一个WinRT而不是Mvx特定的问题.System.Windows.Interactivity不适用于WinRT应用程序,因此我无法使用基于i:Interaction.Triggers的技术.我希望以真正的MVVM方式实现绑定,而无需切换到代码隐藏,因此我可以在其他平台上尽可能多地重用.在WinRT应用程序中实现它的合理方法是什么?我没有在MvvmCross样本中找到任何示例.

提前致谢

binding listview combobox selectionchanged mvvmcross

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

文本框上的多重绑定不起作用

两个案例都已解决,请查看第一个回答评论的信息.

这段代码编译但在运行时会出错.例外说:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll.

当我尝试在MultiBinding中为第二个绑定设置源时,会发生Parse异常.我已经尝试了很多方法并挖掘了大约20篇文章,尽管我在这里找不到有什么问题.

我最好的猜测是它以某种方式连接到转换器的错误返回类型.

而且,顺便说一句,当你将TextBox更改为TextBlock时,第一种情况就可以了.第二种情况仍然不起作用.

情况1

XAML:

<UserControl x:Class="Draft.MainControl"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:draft="clr-namespace:Draft" 
        xmlns:s="clr-namespace:System;assembly=mscorlib" 
        Height="350" Width="352">

    <UserControl.Resources>

        <s:String x:Key="str1">HELLO</s:String>
        <s:String x:Key="str2">WORLD</s:String>

        <draft:StringConverter x:Key="myStringConverter"/>

     </UserControl.Resources>

    <Grid>

        <TextBox Name="tb1">
            <TextBox.Text>
                <MultiBinding Converter="{StaticResource myStringConverter}">
                    <Binding Source="{StaticResource str1}" />
                    <Binding Source="{StaticResource str2}" />
                </MultiBinding>
            </TextBox.Text>
        </TextBox>


    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

代码背后:

public class StringConverter : IMultiValueConverter
{
    public object Convert( object[] values, Type targetType, object parameter, CultureInfo culture )
    {
        return ( values[0].ToString() + values[1].ToString() ); …
Run Code Online (Sandbox Code Playgroud)

wpf binding

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