>换行
> nowrap
> WrapWithOverflow
我想绑定到MenuItem的IsChecked属性.如果选中了MenuItem,我想将TextBox的textwrapPing属性设置为Wrap.如果未选中MenuItem,我想将TextBox的textwrapPing属性设置为nowrap.
总而言之,我试图将具有两个状态的控件绑定到具有两个以上值的枚举的两个值.
[edit]我想在XAML中完成这个,如果可能的话.
[edit]我想出了如何使用IValueConverter来做到这一点.也许有更好的方法来做到这一点?这是我做的:
在Window.Resources中,我声明了对ValueConverter的引用.
<local:Boolean2textwrapPing x:Key="Boolean2textwrapPing" />
在我的TextBox中,我创建了与MenuItem的绑定,并在绑定语句中包含了Converter.
textwrapPing="{Binding Elementname=MenuItemWorDWrap,Path=IsChecked,Converter={StaticResource Boolean2textwrapPing}}"
而ValueConverter看起来像这样:
public class Boolean2textwrapPing : IValueConverter { public object Convert(object value,Type targettype,object parameter,CultureInfo cultureInfo) { if (((bool)value) == false) { return textwrapPing.nowrap; } return textwrapPing.Wrap; } public object ConvertBack(object value,System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }解决方法 如果你想在xaml中完成所有这一切,你需要使用 Style和 DataTrigger.
<StackPanel> <CheckBox x:name="WorDWrap">Word Wrap</CheckBox> <TextBlock WIDth="50"> Lorem ipsum dolor sit amet,consectetuer adipiscing elit. Proin lacinia nibh non augue. Pellentesque pretium neque et neque auctor adipiscing. <TextBlock.Style> <Style targettype="{x:Type TextBlock}"> <Style.Triggers> <DataTrigger Binding="{Binding IsChecked,Elementname=WorDWrap}" Value="True"> <Setter Property="textwrapPing" Value="Wrap" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock></StackPanel>总结
以上是内存溢出为你收集整理的wpf – 如何将TextBox的TextWrapping属性绑定到MenuItem的IsChecked值?全部内容,希望文章能够帮你解决wpf – 如何将TextBox的TextWrapping属性绑定到MenuItem的IsChecked值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)