我遇到了网格combobox
列绑定的严重问题。
我有一个grid
,其中每行代表一个项目。我的商品具有商品"NumberPhase"
。
我想绑定某个ItemsSource
列的combobox
。对于不同的行,值列表应该是不同的。
仅绑定到我的项目属性时,它可以正常工作:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" itemssourcebinding="NumberPhase" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
但是,我想在另一个变量中添加dependency
(该变量不属于此grid's row
的项目)。所以我试过这样的事情:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
<telerik:GridViewComboBoxColumn.ItemsSource>
<MultiBinding diagnostics:PresentationTraceSources.TraceLevel="High" Converter="{StaticResource sensorCountConverter}">
<Binding Path="NumberPhase" />
<Binding Path="Data.PanelConfig.ID" Source="{StaticResource editedLocation}" />
</MultiBinding>
</telerik:GridViewComboBoxColumn.ItemsSource>
...
</telerik:gridviewcomboboxcolumn>
运行时,我的转换器获得第一个值(NumberPhase)为DependencyProperty
。 UnsetValue
。第二个值就好了。
我想也许我应该将标记名称更改为ItemsSourceBinding
而不是ItemsSource
(因为在第一个示例中,我将该名称用于一个变量并且它起作用)。
所以我试过这样的事情:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
<telerik:GridViewComboBoxColumn.ItemsSourceBinding>
<MultiBinding diagnostics:PresentationTraceSources.TraceLevel="High" Converter="{StaticResource sensorCountConverter}">
<Binding Path="NumberPhase" />
<Binding Path="Data.PanelConfig.ID" Source="{StaticResource editedLocation}" />
</MultiBinding>
</telerik:GridViewComboBoxColumn.ItemsSourceBinding>
</telerik:gridviewcomboboxcolumn>
结果是exception
抛出了消息:
无法在'ItemsSourceBinding'属性上设置'MultiBinding' 'GridViewComboBoxColumn'类型。只能设置'MultiBinding' DependencyObject的DependencyProperty。
我也读过关于proxy pattern的内容,但我想我不能在我的情况下使用它,因为当我尝试将它放在网格中时,我收到以下消息:
“RadGridView”类型不支持直接内容。我不能放置 在外面,因为那时我将有一个问题绑定到正确的 行的网格项目。
任何建议都将受到赞赏!!
答案 0 :(得分:1)
我认为这可能对您有用: (将多重绑定放在ItemTemplate中)
using (var client = new ImapClient(new ProtocolLogger("imap.log")))
{
using (var cancel = new CancellationTokenSource())
{
//LogIn
client.Connect("imap.gmail.com", 993, MailKit.Security.SecureSocketOptions.SslOnConnect);
var credentials = new NetworkCredential(username, password);
client.Authenticate(credentials, cancel.Token);
var personal = client.GetFolder(client.PersonalNamespaces[0]);
f1.tbl_folderTableAdapter1.Insert(ID, PARENTID, username);
client.Disconnect(true);
}
}