2010-07-21 65 views
0

的内容我在资源数据模板的TextBlock:绑定的TextBlock中的DataTemplate(资源),以检查单选按钮

<DataTemplate x:Key="MyDataTemplate" ItemsSource="{Binding MySource}"> 
    <TextBlock x:Name="MyText" Text="{Binding ???}" /> 
</DataTemplate> 

,我想与检查单选按钮的Content绑定:

<RadioButton GroupName="MyGroup" Content="Code" /> 
<RadioButton GroupName="MyGroup" Content="Description" /> 

如果选择代码单选按钮,那么我希望文本变成Text={Binding Code}

请帮忙,谢谢。

回答

0

我创建2 DataTamplate在资源,将我的TreeView的ItemTemplate从后面的代码

if (ViewByCodeRadioButton.IsChecked == true) 
    MyTreeView.ItemTemplate = Resources["MyDataTemplateCode"] as DataTemplate; 
else 
    MyTreeView.ItemTemplate = Resources["MyDataTemplateDesc"] as DataTemplate; 
1

假设这是由视图模型的支持,你将建立您的视图模型正是如此:

bool isCodeChecked; 
public bool IsCodeChecked 
{ 
    get { return isCodeChecked; } 
    set 
    { 
     if(value == isCodeChecked) return; 
     isCodeChecked = value; 
     // raise notification that ***MyText*** property has changed (INotifyPropertyChanged interface) 
    } 

public string MyText 
{ 
    get { return IsCodeChecked ? "Code" : "Description"; } 
} 

然后设置您的XAML:

<RadioButton GroupName="MyGroup" Content="Code" IsChecked="{Binding IsCodeChecked, Mode=OneWayToSource}" /> 

<DataTemplate x:Key="MyDataTemplate" ItemsSource="{Binding MySource}"> 
    <TextBlock x:Name="MyText" Text="{Binding MyText}" /> 
</DataTemplate> 

CheckBox的结合将导致布尔属性在要更新的视图模型上,这又将通知文本框更新其绑定值。

+0

它没有工作,周杰伦。 MyText已被更改并通知,但我的TreeView没有显示绑定文本(空白)。 – 2010-07-22 03:23:32

+0

什么'TreeView'? – Jay 2010-07-22 04:04:54

+0

我的RadTreeView使用MyDataTemplate作为它的ItemTemplate。 – 2010-07-29 09:08:24