从ItemContainerStyle中绑定到对象

时间:2016-04-13 15:32:13

标签: c# wpf binding combobox telerik

在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>

感谢您的帮助!

1 个答案:

答案 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,我得到了我想要的东西,一切都像魅力一样。