我正在UWP中使用XAML制作聊天应用程序。侧面板由用户组成。像这样。
所有内容都在列表框中,我在这个模板中包含一个椭圆作为一个圆圈,就像一个指标,一个用户图像 ,文本块和一个切换开关。我必须在切换开关处于状态,它应该改变圆的绿色并使其变为红色。
我想在MainPage.cs中的代码c#中提供此功能。我做了切换事件处理程序切换的对象,但我无法访问数据模板中的其他元素,如ellispse,textblock。 这样做的另一种替代方法是什么?
注意 :它必须位于列表框中,因为我想为每个用户使用相同的模板。
答案 0 :(得分:0)
执行此操作的最佳方法是使用数据绑定。
您要为该项定义一个ViewModel
类,该类包含bool
属性,并会对设置器中切换的切换做出反应,或者设置Command
当状态事件使用行为改变时执行。
如果您真的希望代码作为主页上的事件处理程序,那么您有一些选择。要获取与切换关联的项目,可以使用其DataContext
属性并将其强制转换为您正在使用的数据类型。或者,您可以使用UWP Community Toolkit提供的Visual Tree Extesnions
。这使您可以找到存储所有项控件的父级(可能是Grid
),然后手动查找用户图像TextBlock
等。