DataGrid列单元格下划线绑定问题

时间:2014-02-14 04:02:10

标签: c# wpf xaml datagrid

我遇到了将文本修饰绑定到datagrid列DataTemplate的问题。这是xaml设置。

<UserControl x:Class="myClass"...>

        <DataGrid 
            Name="_dataGrid"
            FontFamily="{Binding Font_Family}"
            FontWeight="{Binding Font_Weight}">

    <Controls:DataGrid.Columns>
      <Controls:DataGridTemplateColumn>
        <Controls:DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
            <TextBlock 
                 Text="{Binding Data1}" 
                  Foreground="Red" 

                  //This binding does not work
                 TextDecorations="{Binding Decor_Underline"/> 

          </DataTemplate>
        </Controls:DataGridTemplateColumn.CellTemplate>
      </Controls:DataGridTemplateColumn>
    </Controls:DataGrid.Columns>

        </DataGrid>
    </UserControl>

我得到的错误是这样的。

BindingExpression with XPath cannot bind to non-XML object.; XPath='Model.Decor_Underline' BindingExpression:Path=Decor_Underline; DataItem='DataGrid'

如果我手动设置文本装饰,它可以正常工作。 TextDecoration = "Underline" Font_Family和Font_Weight的绑定工作正常。

我尝试过以下操作;但由于DataGrid没有TextDecorations属性,因此无效。

TextDecorations="{Binding Decor_Underline ,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}

这是模型中的属性。事件按预期提出,对控件没有影响 - 好像没有人在听。方案是按下按钮,网格列文本框加下划线。

public TextDecorationCollection Decor_Underline {
            get { return decor_Underline; }
            set {
                if(someFlg)
                  decor_Underline = TextDecorations.Underline;
                RaisePropertyChanged("Decor_Underline");
            }
        }
TextDecorationCollection decor_Underline;

任何想法?

0 个答案:

没有答案