我遇到了一個使用Windows Phone 8旋轉控件的奇怪問題。PivotItem頭在運行時更改
顯然,當Pivot綁定到模型列表並且HeaderTemplate用於綁定到模型屬性之一時,在運行時期間更改屬性會導致標題中的佈局問題。
以下是示例代碼。 創建一個簡單的模型類。
public class MyModel: INotifyPropertyChanged
{
private string _displayName;
public event PropertyChangedEventHandler PropertyChanged;
public string DisplayName
{
get
{
return _displayName;
}
set
{
_displayName = value;
if(PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("DisplayName"));
}
}
}
}
然後初始化型號列表(可能發生在視圖模型,或頁面的代碼)
Items = new List<MyModel>
{
new MyModel { DisplayName = "model 1" },
new MyModel { DisplayName = "model 2" },
}
型號列表連接到轉動控制
<phone:Pivot ItemsSource="{Binding Items}" DisplayMemberPath="DisplayName">
<phone:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</phone:Pivot.HeaderTemplate>
</phone:Pivot>
所以現在我們有2個透視項目和標題顯示正確。現在,我們改變的第一個項目的DisplayName屬性的應用程序運行期間(以下稱按一下按鈕),並指定一個較長的字符串值:
Items[0].DisplayName = "Some other header";
這將導致頭重疊。 有什麼想法?
奇怪的問題,你可以在最小的樣本中重現它嗎? –
當然可以。我應該在哪裏發佈它? – eshaham