从代码隐藏发送多个值到数据网格字段转换器

发布于 2024-12-18 04:37:35 字数 892 浏览 2 评论 0原文

我正在运行时创建 infragistics wpf 网格。

在 FieldLayoutInitialized 中,我正在创建未绑定的字段。

一个示例未绑定字段是

UnboundField field = new UnboundField();

field.Name= "Testfield";

field.BindingPath = "Binding path";

FieldLayout fieldLayout;

fieldLayout.Fields.Add(field)

但我的要求是我有一个计算字段,因此我创建了转换器。转换器将返回两个值的总和。

A3=A1+A2;

如果它来自 XAML 文件,我们可以这样写

<Textbox.Value>

<MultiBinding Converter="{StaticResource ConvertnameClass}" Mode="OneWay">
                    <Binding Path="A1"/>
                    <Binding Path="A2"/>
                </MultiBinding>
</Textbox.Value>. 

field.Converter = coverter class object; 字段.ConverterParameter = ???;

如果是单一绑定,我们可以发送 field.BindingPath = "类属性值";

当创建运行时时,如何从代码后面向转换器发送多个绑定值。

请帮助我。

I am creating infragistics wpf grid at runtime.

in FieldLayoutInitialized i am creating unbound fields.

one sample unbound field is

UnboundField field = new UnboundField();

field.Name= "Testfield";

field.BindingPath = "Binding path";

FieldLayout fieldLayout;

fieldLayout.Fields.Add(field)

But my requirement is i have a field which is calculated one so for that i created converter. converter will return sum of two values.

A3 = A1+A2;

If it is from XAML file we can write like

<Textbox.Value>

<MultiBinding Converter="{StaticResource ConvertnameClass}" Mode="OneWay">
                    <Binding Path="A1"/>
                    <Binding Path="A2"/>
                </MultiBinding>
</Textbox.Value>. 

field.Converter = coverter class object;
field.ConverterParameter = ???;

if it is single binding we can send the
field.BindingPath = "class prop value";

how can i send multiple binding values to converter from code behind when it is creating run time.

please help me out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妥活 2024-12-25 04:37:35

这是一个在代码后面创建多重绑定的示例,

将其放在您的 FieldLayoutInitialized 事件中,

private void FieldLayoutInitialized(object sender, FieldLayoutInitializedEventArgs e) {
  var fieldlayout = e.FieldLayout;

  UnboundField field = new UnboundField();
  field.Name = "Testfield";
  fieldlayout.Fields.Add(field);

  var multiBinding = new MultiBinding();
  multiBinding.Mode = BindingMode.OneWay;
  multiBinding.Converter = new MultiBindingConverter(); // implement IMultiValueConverter
  multiBinding.Bindings.Add(new Binding() { Path = new PropertyPath("A1"), Mode = BindingMode.OneWay });
  multiBinding.Bindings.Add(new Binding() { Path = new PropertyPath("A2"), Mode = BindingMode.OneWay });

  field.Binding = multiBinding;
}

您可能必须为两个绑定指定 Source 或relativeSource

希望这会有所帮助(我使用了 11.1 库)

here is a sample that creates a multibinding in code behind

put this at your FieldLayoutInitialized event

private void FieldLayoutInitialized(object sender, FieldLayoutInitializedEventArgs e) {
  var fieldlayout = e.FieldLayout;

  UnboundField field = new UnboundField();
  field.Name = "Testfield";
  fieldlayout.Fields.Add(field);

  var multiBinding = new MultiBinding();
  multiBinding.Mode = BindingMode.OneWay;
  multiBinding.Converter = new MultiBindingConverter(); // implement IMultiValueConverter
  multiBinding.Bindings.Add(new Binding() { Path = new PropertyPath("A1"), Mode = BindingMode.OneWay });
  multiBinding.Bindings.Add(new Binding() { Path = new PropertyPath("A2"), Mode = BindingMode.OneWay });

  field.Binding = multiBinding;
}

probably you must specify Source or RelativeSource for the two bindings

hope this helps (i used the 11.1 libs)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文