在WPF窗口中,我使用静态源填充RadComboBox(但与普通Combobox的问题相同)。工作正常。
现在我想针对ComboboxItem外部的对象检查每个元素。我写了一个多值转换器(也可以正常工作)从组合框项目和WPF窗口拥有的ne中获取对象。
在组合框中我有任务类型,主要对象叫做任务。
第1点:使用<Binding Path=""/>
我确实得到了组合框项目 - 但这是正确的吗?
第2点(我无法弄清楚):如何启动WPF表单所拥有的对象任务?
Windows DataContext由DataContext="{Binding RelativeSource={RelativeSource Self}}"
Task对象(现在)位于代码后面:
private Task task;
public Task Task
{
get { return this.task; }
set
{
this.task = value;
NotifyPropertyChanged("Task");
}
}
这是我的组合框:
<telerik:RadComboBox Grid.Row="0" Grid.Column="1" Margin="6,6,6,2" Padding="10,0,0,0" VerticalContentAlignment="Center" ItemsSource="{Binding Source={StaticResource applicationBase}, Path=TaskTypes.TaskTypes}" DisplayMemberPath="Name" SelectedValue="{Binding Path=Task.TaskType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" telerik:StyleManager.Theme="Windows8Touch" FontSize="16" IsEnabled="{Binding Path=IsEnabledState, Mode=TwoWay}">
<telerik:RadComboBox.ItemContainerStyle>
<Style TargetType="{x:Type telerik:RadComboBoxItem}">
<Setter Property="IsEnabled">
<Setter.Value>
<MultiBinding Converter="{StaticResource ConverterTaskTypeEnabled}">
<Binding Path=""/>
<Binding Path="Task" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</telerik:RadComboBox.ItemContainerStyle>
</telerik:RadComboBox>
感谢您的帮助!
答案 0 :(得分:0)
好的,经过一夜安眠后,我发现自己如何解决这个问题:
unsigned char buf[16];
memcpy(&buf, &addr, 16);`
printf("0x");
int i;
for(i = 0; i < 16; i++)
{
if(i && i % 2 == 0)
printf (":");
printf("%02x", buf[i]);
}
绑定到路径=。得到项目本身
通过使用拥有DataContext的Window和所需的第二个对象作为我的MultiConverter的RelativeSource,我得到了我想要的东西,一切都像魅力一样。