2011-11-25 238 views
1

我在運行時創建WPF Infragistics的網格發送多值數據網格場轉換器。從代碼隱藏

在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類對象; field.ConverterParameter = ???;

如果是單結合我們可以發送 field.BindingPath =「類丙值」;

我怎麼能發送多個綁定值從碼轉換器時,它正在創建的運行時間之後。

請幫助我。

回答

2

這裏是你的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; 
} 

可能必須指定來源或的RelativeSource兩個綁定

希望這有助於創建在後面的代碼

把這一個multibinding樣本(我使用了11.1庫)