I'm relatively new to DataBinding and just reading into it. What I want to do is the following:
I have a StackPanel with a number of child controls:
<StackPanel Orientation="Horizontal">
<TextBox x:Name="textbox1" Width="100">1</TextBox>
<TextBox x:Name="textbox2" Width="100">2</TextBox>
<TextBox x:Name="textbox3" Width="100">3</TextBox>
</StackPanel>
The visibility
property of the textboxes can be changed by code.
Now, if all TextBoxe
s are set to Visibility=Collapsed
, i also want StackPanel.Visibility
set to Collapsed
, but if one or more TextBoxe
s are shown (Visibility=Visible)
, StackPanel.Visibility
should also be set to Visible
.
Can this be achieved with a simple DataBinding or do I have to implement this functionality in C# code?
I can not think of a way to do this directly through databinding.
Personally I would have a view model behind the view, and set the views DataContext to the view model.
In the view model I would then have a property telling the view if all the textboxes are collapsed. That property would be set by code. Then bind the stackpanel visibility to that property.
(The property must either be a dependancy property, or the view model must implement INotifyPropertyChanged for the view to automatically update)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With