2013-03-14 84 views
2

是否有解決方案將多個屬性綁定到我的ClipboardBinding。 我嘗試下面的代碼,但這沒有工作:WPF DataGrid ClipboardBinding可能的多重綁定?

<DataGridTemplateColumn CanUserSort="True" SortMemberPath="Characteristic.Area.Name.ActualTranslation" MinWidth="120" > 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" Margin="5,0,5,0"> 
       <TextBlock Text="{Binding Characteristic.Area.Name.ActualTranslation}"></TextBlock> 
       <TextBlock Text=" "></TextBlock> 
       <TextBlock Text="{Binding AreaItem.Value}"></TextBlock> 
      </StackPanel> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{lex:Loc Area}"></TextBlock> 
     </DataTemplate> 
    </DataGridTemplateColumn.HeaderTemplate> 
    <DataGridTemplateColumn.ClipboardContentBinding> 
     <!-- TODO: ClipboardBinding Area --> 
     <MultiBinding StringFormat="{}{0} {1}"> 
      <Binding Path="Characteristic.Area.Name.ActualTranslation" /> 
      <Binding Path="AreaItem.Value" /> 
     </MultiBinding> 
    </DataGridTemplateColumn.ClipboardContentBinding> 
</DataGridTemplateColumn> 

我會很感激書於一個解決辦法了。 請幫忙

回答

4

你應該使用轉換器(msdn)。

class StringFormatConverter : IMultiValueConverter 
{ 
    public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return string.Format(parameter.ToString(), values); 
    } 

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

XAML:

<DataGridTemplateColumn.ClipboardContentBinding>  
    <MultiBinding 
     ConverterParameter=" {0} {1}" 
     Converter="{StaticResource conString}"> 
     <Binding Path="Characteristic.Area.Name.ActualTranslation" /> 
     <Binding Path="AreaItem.Value" /> 
    </MultiBinding> 
</DataGridTemplateColumn.ClipboardContentBinding> 
+0

謝謝:)我已經添加了以下行,以確保轉換犯規崩潰,如果一個bindingproperty是可選..'值= values.Where(X => X != null && x!= DependencyProperty.UnsetValue)。聯合(values.Where(x => x == null || x == DependencyProperty.UnsetValue).Select(x =>「」))。ToArray();' – JuHwon 2013-03-15 09:58:47