我想在同一个TreeViewItemContainer中绑定基于TextBox
的SelectedItem的ComboBox
的可见性。我想我可以使用转换器进行绑定,但我不知道如何将ComboBox
项作为TextBox
绑定的参数发送。可以这样做吗?
<TreeView>
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox Margin="2,0" Name="SkillSelectCB" ItemsSource="{Binding PotentialChildren}" />
<TextBox Margin="2,0" Width="50" Visibility="{Binding ??}" />
<Button Margin="2,0" Content="Add" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
这实际上是在HierarchicalDataTemplate中,上面的例子非常小。 “添加”Button
会根据TreeView
中选择的内容将新子项添加到ComboBox
的ViewModel中。可见性是TextBox
将根据ComboBox
的SelectedItem的某些属性而发生变化。
答案 0 :(得分:0)
所以TextBox
的Xaml:
<TextBox Margin="2,0"Width="50" Visibility="{Binding SelectedItem, ElementName=SkillSelectCB, Converter={StaticResource SkillToVisibilityConverter}}" />
转换器:
public class SkillToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var s = (Skill)value;
return (s == null || !s.Specialized) ? "Hidden" : "Visible";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}